我有一个包含字母和数字的字符串sStr。我正在尝试从字符串中删除字母。
例如:sStr =“P441”或有时sStr =“BK471”。
我尝试过使用
Right(sStr,3)
和split
这给了我441.因为字符串sStr有时可能包含2个字母(“BK471”),我如何删除vba中的字母。
答案 0 :(得分:1)
您可以遍历字符串中的每个字符,检查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
答案 1 :(得分:0)
您可以使用正则表达式删除任何字母。为此,您需要在宏中包含Regex库(转到工具 - >参考,然后搜索并选择正则表达式库)
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
以上代码将替换单词中任何位置的任何字母。