Оценивая больше, чем х, но меньше, чем х 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
Другие вопросы по тегам