Массивы: определены в .NET, применяются в VBA

Я создал библиотеку классов VB.NET 2008, которая по большей части довольно хорошо работает с VBA. Я могу выполнять большую часть необходимой функциональности, но недавно столкнулся с довольно серьезной проблемой.

Причина, по которой мы работаем с обоими интерфейсами программирования, заключается в том, что мы должны уметь работать «на лету» кодирование и это может быть достигнуто только в VBA. Итак, как я уже упоминал, в .NET есть «магистральный» код. Код .NET содержит массивы, поля, свойства и т. Д. (Типичная структура вашей программы). Моя проблема с массивами.

Хорошо, в .NET DLL у меня есть массив - назовем его X () как Double. Существует два свойства, поскольку VBA не поддерживает перегрузку. Один из них: X (rowNum) как Double, а другой: X () как Double (). Обратите внимание, что первое свойство возвращает только один элемент массива, а последнее возвращает весь массив.

В моей программе VBA я могу прочитать файл и заполнить этот массив значениями (это все в DLL). Однако я не могу манипулировать теми же значениями один раз в VBA.

Например, в VBA я не могу сказать X (5) = 10. Это не изменит значение . Когда я пытаюсь установить для всего массива X () другое значение, я получаю сообщение об ошибке компиляции: функция или интерфейс помечены как ограниченные, либо функция использует тип автоматизации, не поддерживаемый в Visual Basic.

1
задан Community 9 July 2018 в 18:41
поделиться