Тим дал вам объяснение, почему ваш код не работал вместе с возможным решением
Возможным решением, сохраняющим ваш код, будет установка массива в событии Userform Activate
, которое запускается при *Метод 1004 *, следовательно, после инициализации пользовательской формы:
Private Sub UserForm_Activate() ' <- use 'Activate' event instead of 'Initialize'
ListBox1.List = ListArray
End Sub
Более того, рекомендуется явно создавать экземпляры объектов Userform
Тим уже показал вам путь, а вот другой способ:
With New UserForm1 ' instantiate and reference a new object of your Userfom1 class
.ListArray = ArrTest
.Show
End With ' here the new instance gets disposed