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 является ложной, но оператор после и все еще оценивается. Это дает мне индекс ошибок вне диапазона во время выполнения.
Действительно ли VBA продолжает оценивать второй аргумент для И, даже если первый был ложным?