Instr Access VBA - 搜索Numeric,然后搜索Letter

时间:2017-05-18 00:23:41

标签: vba access-vba

很抱歉,如果因为找不到答案而将其发布在其他地方。

我试图搜索任何数字,然后是字母" 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

感谢您的帮助!

2 个答案:

答案 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