VBA.如何在字符串中查找第一个数字的位置

Olo*_*vin 13 vba digit

我有字符串"ololo123".我需要获得第一位的位置 - 1.如何设置搜索掩码?

Rob*_*Rob 9

像这样的东西应该为你做的伎俩:

Public Function GetPositionOfFirstNumericCharacter(ByVal s As String) As Integer
    For i = 1 To Len(s)
        Dim currentCharacter As String
        currentCharacter = Mid(s, i, 1)
        If IsNumeric(currentCharacter) = True Then
            GetPositionOfFirstNumericCharacter = i
            Exit Function
        End If
    Next i
End Function
Run Code Online (Sandbox Code Playgroud)

然后你可以像这样调用它:

Dim iPosition as Integer
iPosition = GetPositionOfFirstNumericCharacter("ololo123")
Run Code Online (Sandbox Code Playgroud)


小智 7

这是一种轻量级且快速的方法,可以避免正则表达式/引用添加,从而有助于提高开销和可传输性.

Public Function GetNumLoc(xValue As String) As Integer

For GetNumLoc = 1 To Len(xValue)
    If Mid(xValue, GetNumLoc, 1) Like "#" Then Exit Function
Next

GetNumLoc = 0

End Function
Run Code Online (Sandbox Code Playgroud)