Доступ к массиву с плавающей точкой внутри массива объектов класса в VBA - PullRequest
0 голосов
/ 24 октября 2019

У меня есть, вероятно, простая проблема для доступа к массиву с плавающей точкой внутри массива объектов класса. Внутри моего документа Excel я объявляю класс TData с некоторыми свойствами, такими как

Public weight As Double
Public segments As Variant

Затем внутри модуля я объявляю массив объектов и функцию для изменения данных:

Dim dataset(126) As Object

Function modify()

   Set dataset(0) = New TData
   dataset(0).weight = 50
   dataset(0).segments = Array(5.5,2,1)

   Debug.Print dataset(0).segments(0) ' this produces an error 451
   t = dataset(0).segments
   Debug.Print t(0) ' this is fine and prints the correct answer

End Function

ЕслиЯ пытаюсь получить доступ к значению напрямую с помощью строки «dataset (0) .segments (0)», получаю сообщение об ошибке 451 «Процедура свойства let не определена, а процедура get свойства не вернула объект». Если я сначала назначу массив переменной, я получу доступ к значению.

Теперь я не понимаю, почему я не могу получить доступ к значению вложенного массива. Я предполагаю, что это какой-то определенный синтаксис, который я нигде не нашел. Дело в том, что когда я добавляю «dataset (0) .segments» к часам, он перечисляет значения с точно таким же обозначением как «dataset (0) .segments (0..2)».

1 Ответ

0 голосов
/ 24 октября 2019

Благодарность Тиму:

Я удалил свой предыдущий ответ и заменил его тем, что предоставил Тим и принял автор. Ошибка была синтаксической ошибкой, даже я не смог поймать. Я изменяю свой ответ для сообщества, но 100% -ый кредит идет Тиму. Если Тим публикует ответ, он должен получить галочку принятого ответа.

Debug.Print dataset (0) .segments () (0)

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