Не могу вызвать встроенную функцию VBA с Application.Run
В VBA пользовательская подпрограмма или функция может быть вызвана с помощью Application.Run
метод, как так
Application.Run "macroName", arg1 ', ...
допускает грубое моделирование делегатов в VBA. Однако встроенные функции VBA нельзя вызывать одинаково
' Error 1004: Cannot run macro 'FileDateTime'. The macro may not be available ...
Debug.Print Application.Run("FileDateTime", "<some file path>")
Как можно вызвать эту функцию, учитывая строку имени встроенной функции, например, "FileDateTime"?
Одним из обходных путей может быть создание функций, которые просто возвращают результат встроенной функции. Но я ищу более прямое решение.
1 ответ
Решение
Для этого вам не нужен Application.run (и его использование также было некорректным):
Debug.Print FileDateTime("some file path")
РЕДАКТИРОВАТЬ: Альтернативой является написать свой собственный макрос:
function F_D_T(path as string)
F_D_T = FileDateTime("somepath")
end function
и вызвать этот макрос с помощью application.run