2016-11-03 3 views
1

Ich habe eine Zeichenfolge sStr, die Buchstaben und Zahlen enthält. Ich versuche, Buchstaben aus einer Zeichenfolge zu entfernen.Entfernen Sie den Buchstaben von einer Zeichenfolge Zugriff VBA

Für zB: sStr = "P441" oder manchmal sStr = "BK471".

Ich versuchte Right(sStr,3) und split

verwendet, die mich 441. seit der Zeichenfolge gibt SSTR 2 Buchstaben enthalten ("BK471") manchmal, wie ich Briefe in vba entfernen Sie.

Antwort

1

Sie können Schleife durch jedes Zeichen in der Zeichenfolge zu überprüfen, ob es IsNumeric

Dim x as integer 
Dim sCleanedStr As String 
For x = 1 to Len(sStr) 
    If IsNumeric(Mid(sStr, x, 1)) then sCleanedStr = sCleanedStr & Mid(sStr, x, 1) 
Next 
0

Sie reguläre Ausdrücke verwenden, können alle Buchstaben zu entfernen. Dazu müssen Sie die Regex-Bibliothek in Ihrem Makro schließen (Gehen Sie zu Extras -> Referenzen, dann suchen und die reguläre Ausdrücken Bibliothek auswählen)

Sub test() 

sStr = "abc123" 
Dim regEx As New RegExp 
With regEx 
    .Pattern = "[a-z]+" 
    .Global = True 
    .IgnoreCase = True 
End With 
sStr = regEx.Replace(sStr, "") 
MsgBox (sStr) 

End Sub 

Der obige Code wird jeden Brief von überall im Wort ersetzen.

Verwandte Themen