Слегка похожая проблема
ответа в данной ветке так толком и не увидел
вот код:
при этом, если k заменить на число, к примеру 300 (заведомо выше, чем требуется), то все работает норм
так то вроде "костыль" работает, но хотелось бы понять, почему переопределение массива через переменную не дает результата?
заранее спасибо
ответа в данной ветке так толком и не увидел
вот код:
| Код |
|---|
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) |
| Код |
|---|
ReDim Preserve NetworkArray(300, 1) |
заранее спасибо
Изменено: - 13.03.2020 16:08:31