Как выполнить литерал в VBA? - PullRequest
1 голос
/ 14 апреля 2009

Есть ли способ выполнить литерал, такой как,

 UseValueKey = ExecuteMethod("Date()")

Я хочу, чтобы переменная UseValueKey возвращала фактическую дату.

Я использую VBA.

Есть идеи?

Ответы [ 4 ]

4 голосов
/ 14 апреля 2009

Я не занимался кодированием VBA в течение нескольких лет, но я напоминаю, что в Access VBA был метод Eval (), который можно использовать для оценки кода, представленного в виде строки.

Эта статья дает пример ее использования.

2 голосов
/ 14 апреля 2009

Вы можете попробовать функцию Eval .

1 голос
/ 15 апреля 2009

Если, как указано в комментариях к вопросу, имя функции известно и может быть доставлено как метод для класса, попробуйте посмотреть

CallByName object, routine, callType

где callType указывает, является ли вызываемая подпрограмма свойством Get / Let / Set или методом.

Это кажется гораздо менее хитрым (и несколько лучше управляемым), чем дурачиться с оценкой кода, когда вы можете оставить себя открытым, например, неожиданные последствия ...

0 голосов
/ 14 апреля 2009

Возможно, я не совсем следую за вами, но вы должны быть в состоянии использовать

Date

например

UseValueKey = date
...