很抱歉,如果因为找不到答案而将其发布在其他地方。
我试图搜索任何数字,然后是字母" m"使用InStr
函数。我已经得到了以下代码,我认为它应该有效,但是它不能识别" 1m" 1.1米"或任何变化并返回0。
Public Function instrstring(strTest As String) As Long
Dim i As Long
PosOfFirstDigit = 0
For i = 1 To Len(strTest)
If Mid$(strTest, i, 1) Like "#" & "m" Then
PosOfFirstDigit = i
Exit For
End If
Next
End Function
感谢您的帮助!
答案 0 :(得分:0)
正如@Tim Williams所提到的,如果你有浮点数和整数数,最好使用正则表达式(正则表达式)。
您需要设置Regex的引用才能使用它。将VBA引用添加到“Microsoft VBScript正则表达式5.5”
你需要的正则表达式是
Dim RE As New RegExp
With RE
.Global = True
.Pattern = "\d*?\.\dm"
End With
If RE.Test(strTest) Then
Msgbox("Found!")
'Insert the function you want to perform here
End If
答案 1 :(得分:0)
要返回匹配的位置,请执行以下操作:
对于
" a1.1m"
" testme 1m"
" testme 222"
返回
2
8
找不到
synchronized
码
Sub Impeached()
Debug.Print StrOut("a1.1m")
Debug.Print StrOut("testme 1m")
Debug.Print StrOut("testme 222")
End Sub