Оценивая больше, чем х, но меньше, чем х VBA
Я создаю приложение, которое должно интерпретировать набор инструкций, заданных пользователем, инструкции, которые не будут известны до времени выполнения.
Я добиваюсь этого, используя функцию Evaluate, так:
Evaluate("5>4")
Что возвращает True, как и следовало ожидать. Мой вопрос заключается в том, как я могу оценить следующее утверждение:
5 больше 4, но меньше 10
Я буду заменять числа переменными, конечно.
Я понимаю, что могу разбить строку на массив из двух частей и выполнить тестирование по отдельности, но должен быть способ передачи одного аргумента для тестирования.
1 ответ
Application.Evaluate
оценивает формулы так AND(5>A4,5<10)
или же (5>A4)*(5<10)
(результат 0 или 1)
Другой альтернативой может быть ScriptControl Eval
, но он не может получить доступ к адресам Excel, как Evaluate
With CreateObject("ScriptControl")
.Language = "VBScript" ' either VBScript or JScript
Debug.Print .Eval("5>4 and 5<10")
End With