сохранение несоответствия типа хранения в массиве VBA

Это работает с MsgBox, но не тогда, когда я раскомментирую оператор присваивания, я получаю ошибку несоответствия типа. У меня есть неизвестная длина строк, начиная с D1, которую я хочу сохранить в массиве MyArr.

Dim MyArr As Variant Range("D1").Select I = 1 While ActiveCell <> Empty MsgBox ("this is in the active cell:" & ActiveCell.Value) ' MyArr(I) = ActiveCell.Value I = I + 1 ActiveCell.Offset(1, 0).Select Wend 

MyArr(I) завершится неудачно, поскольку MyArr не определен как массив. Глядя на ваш код, кажется, вы хотите, чтобы MyArr содержал все строки, найденные с D1, до первой пустой ячейки

 Dim MyArr MyArr=Range("D1", Range("D1").End(xlDown)) If VarType(MyArr)>vbArray then 'more than 1 cell returned 'D1 is in MyArr(1,1) 'D2 is in MyArr(2,1) '... 'Lastcell is in MyArr(Ubound(MyArr),1) Else 'Only one cell found with text 'D1 is in MyArr 'note no () -> one cell = no array End If 
Давайте будем гением компьютера.