VBA, MAKRO - Rozbudowana funkcja FRAGMENT.TEKSTU?


(Kotowicz Marcin) #1

 Witam.


(samonek4) #2

Zapewne będziesz musiał użyć funkcji tekstowych:

InStr - podaje pozycje wzorca,

Mid  - wycina kawałek wzorca,

Len   - długość teksu etc…


(samonek4) #3
Public Function splitMyText(text As String, startPattern As String, lastPattern As String) As String
    Dim startPos As Integer
    Dim lastPos As Integer
    Dim startTextPos As Integer
    Dim lastTextPos As Integer
    Dim fistPatternText As String
    Dim lastPatternText As String
    Dim returnText As String
    startPos = InStr(1, text, startPattern, vbTextCompare)
    lastPos = InStr(1, text, lastPattern, vbTextCompare)
    If (startPos > 0 And lastPos > 0) Then
        startTextPos = startPos + Len(startPattern)
        lastTextPos = lastPos + Len(lastPattern)
        firstPatternText = Mid(text, startTextPos, lastPos - startTextPos)
        lastPatternText = Mid(text, lastTextPos, Len(text) - lastTextPos)
        returnText = Trim(firstPatternText) & ";" & Trim(lastPatternText)
    Else
        returnText = "BLAD!"
    End If
    splitMyText = returnText
End Function

Przykład użycia:

http://postimg.org/image/a4rfev20n/

 

Wynik można rozdzielić na kolumny przy pomocy funkcji EXCELA: DANE->TEKST JAKO KOLUMNY.


(Kotowicz Marcin) #4

Super , wielkie dzięki za pomoc. Naprawdę baaardzo mi pomogliście

Pozdrawiam i jeszcze raz dziękuje