我想编写一个If
语句,只需使用一个单词即可满足条件。例如:
if sheet1.cells(1,1)="a quick brown fox" then
end if
我想要发生的事情即使只有"quick"
这个词,也会满足条件。
答案 0 :(得分:3)
您可以使用InStr()
函数测试子字符串的字符串:
If InStr(Sheet1.Cells(1, 1), "quick") > 0 Then
' Cell contains the string "quick"
End If
对于不区分大小写的比较,您必须为函数提供所有四个可能的参数:
If InStr(1, Sheet1.Cells(1, 1), "quick", vbTextCompare) > 0 Then
' Cell contains the string "quick" or "QUICK" or any combination of upper/lowercase
End If
正如@AndyG在下面的评论中提到的,您还可以使用带有通配符的Like
运算符来测试字符串是否包含子字符串:
If Sheet1.Cells(1, 1) Like "*quick*" Then ' Case-sensitive
-or-
If LCase$(Sheet1.Cells(1, 1)) Like "*quick*" Then ' Case-insensitive
请注意,这些方法也会匹配"quickly"
和包含字符串"quick"
的其他字词。如果你想更具体,正则表达式可能会更好。添加对Microsoft VBScript Regular Expressions 5.5
库的引用,您可以使用以下命令:
Dim re As New RegExp
re.IgnoreCase = False ' Up to you
re.Pattern = "\bquick\b" ' Match the word "quick"
If re.Test(Sheet1.Cells(1, 1)) Then
' Cell contains the word "quick"
End If