在VBA中,最简单的测试字符串是否以子字符串开头的方法是什么?Java有startsWith
。是否有等效的VBA?
Answers:
做这件事有很多种方法:
您可以使用InStr
内置函数来测试字符串是否包含子字符串。 InStr
将返回第一个匹配项的索引或0。因此,您可以通过执行以下操作来测试String是否以子字符串开头:
If InStr(1, "Hello World", "Hello W") = 1 Then
MsgBox "Yep, this string begins with Hello W!"
End If
如果InStr
返回1
,则字符串(“ Hello World”)以子字符串(“ Hello W”)开头。
您还可以将like
比较运算符与一些基本模式匹配一起使用:
If "Hello World" Like "Hello W*" Then
MsgBox "Yep, this string begins with Hello W!"
End If
在此,我们使用星号(*)测试字符串是否以我们的子字符串开头。
从Java函数的声明和描述startsWith
来看,在VBA中实现它的“最直接的方法”可以是Left
:
Public Function startsWith(str As String, prefix As String) As Boolean
startsWith = Left(str, Len(prefix)) = prefix
End Function
或者,如果您想使用offset参数,请使用Mid
:
Public Function startsWith(str As String, prefix As String, Optional toffset As Integer = 0) As Boolean
startsWith = Mid(str, toffset + 1, Len(prefix)) = prefix
End Function
Right()
改用:Right(str, Len(prefix)) = prefix
:-)