WorksheetFunction.Or
оценивает все аргументы или немедленно возвращает True
после аргумента True
?Excel WorksheetFunction.Or
Дело в том, я пытаюсь проверить, является ли переменная числовая, и если это так, я хочу, чтобы проверить, если он меньше 1. Вы можете увидеть ниже:
If IsNumeric(lvl) Or lvl < 1 Then
Do sth...
End If
Описан here , оператор Or
в VBA оценивает все аргументы, и я получаю ошибку несоответствия типа, когда _lvl_
не является числовым. WorksheetFunction.Or
ведут себя одинаково?
Я знаю, что у VBA нет ленивого ИЛИ, но функции рабочего листа Excel все написаны на C и довольно оптимизированы. Я бы определил некоторые UDF в VBA, у которых есть побочные эффекты (например, показ окна сообщений), а затем запустить три из них через функцию ИЛИ, чтобы проверить это. – JamesFaix
Я думаю, вы хотите использовать 'And' вместо' Or' в вашем примере. Тем не менее, это все та же проблема. – arcadeprecinct
@arcadeprecinct Да, вы правы. Просто хотел составить пример, плохой пример. Спасибо, что заметили. –