我的字符串类似于' NS-BATHROOMS 04288'
我只想要数字。
我一直在搜索答案,但到目前为止都没有找到编译器。
我该怎么做?
答案 0 :(得分:2)
没有正则表达式你可以用:(尽管VB6 / VBA代码真的不太好看)
Public Function ReturnNonAlpha(ByVal sString As String) As String
Dim i As Integer
For i = 1 To Len(sString)
If Mid(sString, i, 1) Like "[0-9]" Then
ReturnNonAlpha = ReturnNonAlpha + Mid(sString, i, 1)
End If
Next i
End Function
答案 1 :(得分:0)
我个人使用正则表达式。您可以匹配给定的正则表达式模式以实现您的需求。此功能仅匹配数字。
对于VB6,您可以执行以下操作:
Dim myRegExp, ResultString
Set myRegExp = New RegExp
myRegExp.Global = True
myRegExp.Pattern = "[\d]"
然后你会反对你的字符串。 https://support.microsoft.com/en-us/kb/818802
答案 2 :(得分:0)
您可以使用此函数将数字chr提取为字符串值:
Public Function Str_To_Int(MyString As Variant) As Long
Dim i As Integer
Dim X As Variant
If IsNull(MyString) Or MyString = "" Then
Str_To_Int = 0
Exit Function
End If
For i = 1 To Len(MyString)
If IsNumeric(Mid(MyString, i, 1)) = True Then
X = Nz(X, "") & Mid(MyString, i, 1)
End If
Next i
Str_To_Int = Nz(X, 0)
End Function