语法:在excel-vba中使用IF语句

时间:2015-07-26 22:33:05

标签: excel vba excel-vba

我想编写一个If语句,只需使用一个单词即可满足条件。例如:

if sheet1.cells(1,1)="a quick brown fox" then
end if

我想要发生的事情即使只有"quick"这个词,也会满足条件。

1 个答案:

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