Function Foo(thiscell As Range) As Boolean
Foo = thiscell.hasFormula And (InStr(1, UCase(Split(thiscell.formula, Chr(40))(0)), "bar") > 0)
End Function
存在此函数的目的是测试(之前)是否存在某个子字符串(在这种情况下为bar)。
我遇到问题的情况是当传递给函数的单元格为空时,thisCell.hasFormula为false,但是and之后的语句仍在评估中。这使我在运行时出现下标超出范围错误。
VBA是否真的继续评估And的第二个参数,即使第一个参数为假?
侃侃尔雅
守着星空守着你
白衣染霜花