У меня есть, вероятно, простая проблема для доступа к массиву с плавающей точкой внутри массива объектов класса. Внутри моего документа 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)».