Слегка похожая проблема ответа в данной ветке так толком и не увидел
вот код:
Код
Sub FreeIpAddress()
Dim IpAddressArray(), NetworkArray() As Variant
Dim Cell As Range
Dim k As Integer
Dim v As Variant
'cells to array v1
IpAddressArray = Sheets("PublicIntList").Range("B2:B" & Sheets("PublicIntList").Cells(Sheets("PublicIntList").Rows.Count, "B").End(xlUp).Row).Value
'cells to array v2 notEmpty
k = 1
'ReDim Preserve NetworkArray(300, 1)
For Each Cell In Sheets("PublicIntList").Range("C:C").SpecialCells(xlCellTypeConstants)
ReDim Preserve NetworkArray(k, 1)
NetworkArray(k, 1) = Cell.Value
'NetworkArray(k, 2) = Cell.Address
k = k + 1
Next
End Sub
на второй итерации цикла For Each выходит ошибка:
Subscript out of range
ругается на строку:
Код
ReDim Preserve NetworkArray(k, 1)
при этом, если k заменить на число, к примеру 300 (заведомо выше, чем требуется), то все работает норм
Код
ReDim Preserve NetworkArray(300, 1)
так то вроде "костыль" работает, но хотелось бы понять, почему переопределение массива через переменную не дает результата? заранее спасибо