мой VBA-код создает проблемы. Я сделал модуль Class под названием "clsColl" со свойствами. Когда я объявляю переменную как "clsColl", все работает нормально, но когда я объявляю массив как "clsColl", я получаю ошибку
«Переменная объекта или переменная блока не установлена», если я использую этот массив в другой подпрограмме, которую я вызвал в первой подпрограмме.
Я сделал короткий пример с кодом, который создает проблемы.
Первый модуль моего класса "clsColl"
Option Explicit
Public name As String
Public weight as single
Теперь код, который работает
Sub workingA()
Dim persona As New clsColl
Call workingB(persona)
End Sub
Sub workingB(persona As cls Coll)
persona.name = "phil"
persona.weight = 100
End Sub
Теперь код, который не работает
Sub failingA()
Dim persona() As New clsColl
ReDim persona(1 to 5)
Call failingB(persona)
End Sub
Sub failingB(persona() As cls Coll)
persona(1).name = "phil"
persona(1).weight = 100
End Sub
Я получаю сообщение об ошибке, просто изменив код с использования переменной на массив.
Теперь я получаю сообщение об ошибке «Переменная объекта» или «Не задана переменная блока» со вторым кодом, но я не знаю почему. Я хочу знать, почему использование массива в качестве объекта создает проблемы, подобные этому, при использовании нормальная переменная работает нормально.