我试图在VBA中使用OR运算符,但是在编译时出现错误。我已经在线检查了语法,并且确定可以正确使用它。
例如,如果我做这样的事情:
If CStr(Worksheets("MINUTES").Cells(x, 2)) = "A1.2" Or "B1.1" Then
Worksheets("MINUTES").Rows(x).Hidden = True
End If
我收到类型不匹配错误。但是,将执行以下代码:
If CStr(Worksheets("MINUTES").Cells(x, 2)) = "A1.2" Then
Worksheets("MINUTES").Rows(x).Hidden = True
End If
If CStr(Worksheets("MINUTES").Cells(x, 2)) = "B1.1" Then
Worksheets("MINUTES").Rows(x).Hidden = True
End If
有人可以请教吗?
先谢谢您。
答案 0 :(得分:3)
您可以将每个条件写得很长,
If CStr(Worksheets("MINUTES").Cells(x, 2)) = "A1.2" Or _
CStr(Worksheets("MINUTES").Cells(x, 2)) = "B1.1" Then
Worksheets("MINUTES").Rows(x).Hidden = True
End If
或者,将多个OR条件堆叠到一个数组中,然后寻找匹配项。
if not iserror(application.match(CStr(Worksheets("MINUTES").Cells(x, 2)), array("A1.2", "B1.1"), 0)) then
Worksheets("MINUTES").Rows(x).Hidden = True
End If
...或使用Select Case语句。
select case CStr(Worksheets("MINUTES").Cells(x, 2))
case "A1.2", "B1.1"
Worksheets("MINUTES").Rows(x).Hidden = True
case else
'do nothing
end select
“与阵列匹配”在多种“或”条件下运作良好,“选择案例”在多种条件和多种结果下运作良好。