У меня есть библиотека C #, которая имеет 2 метода. Один возвращает целое число, а другой возвращает объект [,]
public int ReturnInt()
{
//Something that return INT
}
public object[,] Return2DArray()
{
//returns twoDimensionalArrayResponse;
}
Теперь я очень новичок в VBA, и по некоторым унаследованным причинам мне нужно написать макрос VBA, а не VSTO excel Addin, чтобы вызвать эту библиотеку.
Получить результат с первого выхода было легко. Я сделал ассемблер видимым и зарегистрировал его для Com Interop, а затем добавил его в качестве ссылки в свой проект VBA и вызвал его с помощью кода ниже
Sub GXSData()
Dim InteropClass As New ExcelInterOpWrapper
Dim result As Integer
result = InteropClass.ReturnInt()
MsgBox "Rows Returned =" & CStr(result)
End Sub
Пока все хорошо. Теперь я хочу вызвать второй метод, получить данные и связать их, чтобы преуспеть.
Звучит просто, но
-> Какой тип я должен использовать для хранения этих данных. Я пробовал динамический массив, и он не работал
-> Как мне связать это с динамическим диапазоном. Допустим, массив 2d имеет размер 100 * 10. Я хочу связать его с диапазоном, например Range.value = Array
. Я знаю, как это сделать в приложении Excel для надстройки в C #, но VBA доставляет мне реальные проблемы
Любая помощь по этому вопросу будет отличной