Не могу вызвать встроенную функцию 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

Другие вопросы по тегам