Как я вызываю xll дополнительную функцию от vba?

17
задан lfrandom 19 August 2013 в 19:43
поделиться

1 ответ

Редактирование: существует по крайней мере два способа сделать это:

<час>

Опция 1: Application.Run(...)

Это похоже на лучший способ пойти об этом, так как Ваши аргументы автоматически преобразовываются в соответствующий тип прежде чем быть отправленным в функцию XLL.

Public Function myVBAFunction(A as Integer, B as String, C as Double)
    myVBAFunction = Application.Run("XLLFunction", A, B, C)
End Sub

См. эта страница для получения дополнительной информации.

<час>

Опция 2: Application.ExecuteExcel4Macro(...)

С этим методом, необходимо будет преобразовать любые аргументы в формат строки прежде, чем передать их функции XLL.

Public Function myVBAFunction(A as Integer, B as String, C as Double)
    dim macroCall as String
    macroCall = "XLLFunction(" & A
    macroCall = macroCall & "," & Chr(34) & B & Chr(34)
    macroCall = macroCall & "," & C
    macroCall = macroCall & ")"
    myVBAFunction = Application.ExecuteExcel4Macro(macroCall)
End Sub

См. эта страница для получения дополнительной информации.

25
ответ дан 30 November 2019 в 11:27
поделиться
Другие вопросы по тегам:

Похожие вопросы: