Разница между: добавлением tlb в качестве ссылки для вызова функции VS с помощью «Выполнить»? - PullRequest
0 голосов
/ 09 августа 2011

Предположим, у меня есть библиотека .Net с классом (TestClass) с функцией «Добавить».Я получаю доступ к этому в Excel, написав надстройку VBA.Я хочу знать разницу между двумя следующими способами доступа к FUN1.

  1. Добавьте tlb в качестве ссылки и используйте New как в

    Dim obj = New MyLibrary.TestClass

    returnval = obj.Add (5,5)

  2. Подтвердите, что .Net dll, и используйте метод Run, как в

    returnVal = Run ("Добавить ", 5, 5);

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

Как работает 2, будет ли он работать или что необходимо, чтобы заставить 2 работать так:

1 Ответ

0 голосов
/ 10 августа 2011

Вам необходимо заменить = на ключевое слово As для оператора Dim во фрагменте кода.Это работает (при условии, что класс зарегистрирован должным образом в COM):

Sub AccessExternalUdf()
    Dim obj As New MyNamespace.MyClass
    result1 = obj.MyMethod    
    result2 = Run("MyMethod")
End Sub

Разница (как указано выше @Hans) - раннее связывание с ранним (Run).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...