String zerteilen

  • VB6

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von Hoodini.

    String zerteilen

    Hey Leute

    Ich hab dazu zwar schonmal einen Thread aufgemacht, aber hier nochmal mit konkreter Fragestellung.

    Wie kann ich einen String in seine Einzelteile in VBA zerlegen?

    Also wenn ich in einer Zelle hinter dem normalen geschriebenen eine Klammer habe, dann soll das Vordere durch die Klammer ersetzt werden.

    Also wenn x (y) --> y

    Und wenn nur x dasteht, dann soll es so bleiben.

    Das ist der Quellcode:
    Sub Chemie ()
    Dim intRow as Integer
    For intRow = 1 too 200
    If Cells (intRow,1) = "x(y)"
    Then Cells (intRow,1)=y
    Else Cells (intRow,1)=Cells(intRow,1)
    Next intRow
    End Sub
    Hallo Hoodini,
    probier's mal so:

    Visual Basic-Quellcode

    1. Dim intRow As Integer, S1 As String, Pos1 As Long
    2. For intRow = 1 To 200
    3. S1 = Cells(intRow, 1)
    4. Pos1 = InStr(1, S1, "(")
    5. If Pos1 > 0 And Right$(S1, 1) = ")" Then
    6. Cells(intRow, 1) = Mid$(S1, Pos1 + 1, Len(S1) - Pos1 - 1)
    7. End If
    8. Next intRow
    Gruss,

    Neptun
    Vielen Dank für die Lösung!

    Das sieht meiner neueren Version des Codes doch auch schon deutlich ähnlicher

    Sub Makro1()
    '
    ' Makro1 Makro
    '
    ' Tastenkombination: Strg+a
    '
    Dim intRow, text, nameR, nameL As Integer

    text = Cells(intRow, 1)

    For intRow = 1 To 200
    If InStr(1, text, ",") > 0 Or InStr(1, text, " ") > 0 Then
    Cells(intRow, 1) = Right(text, Len(text) - InStr(1, text, " "))
    Else: Cells(intRow, 1) = Cells(intRow, 1)
    Next intRow

    End Sub

    _____

    Kannst du mir vllt noch kurz erläutern was du da genau bei dem if gemacht hast? Ich steig bei dem Part mit "Mid" und dem +1/-1 nicht ganz durch.