Sie haben die richtige Idee. Für Situation 1 führen Sie eine Schleife zurück, bis Sie auf ein nicht numerisches Zeichen stoßen. Verwenden Sie IsNumeric(Mid(str, index, 1))
, um eine 1-stellige Zeichenfolge abzurufen und zu testen, ob es sich um eine numerische Zeichenfolge handelt. Speichern Sie dann die Anzahl der Iterationen n
bis Wert gefunden wurde. Verwenden Sie Right(str, n)
, um die Teilzeichenfolge der letzten n Zeichen der Zeichenfolge abzurufen.
Für Situation 2, Schleife vorwärts, Speichern der Indizes der ersten und zweiten nicht numerischen Zeichen, x1
und x2
. Verwenden Sie dann Mid(str, x1+1, x2-x1-1)
, um die Teilzeichenfolge zwischen Ihrem ersten und zweiten nicht numerischen Zeichen abzurufen. Hier
ist ein Beispiel VBA-Implementierung, die Ihre Antworten in C1 und D1 gesetzt wird:
Sub getSubstrings()
Dim str1 As String
Dim str2 As String
Dim char As String
Dim n As Integer
Dim x1 As Integer
Dim x2 As Integer
str1 = Cells(1, 1).Value 'A1
str2 = Cells(1, 2).Value 'B1
'Situation 1
For i = Len(str1) To 1 Step -1
char = Mid(str1, i, 1)
If Not IsNumeric(char) And char <> "," Then
n = i
Exit For
End If
Next
Cells(1, 3).Value = Right(str1, Len(str1) - n) 'write answer to C1
'Situation 2
x1 = 0
x2 = 0
For i = 1 To Len(str2)
char = Mid(str2, i, 1)
If Not IsNumeric(char) And char <> "," Then
If x1 = 0 Then
x1 = i 'set first index
Else
x2 = i 'set second
Exit For
End If
End If
Next
Cells(1, 4).Value = Mid(str2, x1 + 1, x2 - x1 - 1)
End Sub
FYI die meisten Menschen auf SO nicht geben Sie eine vollständige Code-Implementierung, aber ich hatte nichts Besseres zu tun. Es gibt wahrscheinlich auch eine Excel-Befehlslösung, die aber normalerweise keine "Zeichenklassen" behandelt (nicht numerisch, aber nicht komma). Ich schlage vor, diesen Code als Vorlage zu verwenden, um über zukünftige VBA-Lösungen nachzudenken. Ich zeige Ihnen hier, wie Sie auf Zellen zugreifen, Daten durchlaufen und bedingte Anweisungen schreiben. Bitte recherchiere auch online, um dich vertrauter zu machen.
Dies wurde unzählige Male hier auf SO gefragt, oder Sie können Google-Suchergebnis wollen. – findwindow