Я пытаюсь получить 2D-массив размером [x][3]
заполненный. X
- это только размер листа (количество строк), и меня интересуют 3 столбца. Столбцы не находятся рядом друг с другом, например, arr[i][0]
следует заполнить из столбца AA, arr[i][1]
, из столбца K и arr[i][2]
должен быть из столбцов L.Ввод отдельных диапазонов в 2D-массив
Я попытался присвоить его следующим образом, но получил ошибку в присвоении значения массива.
Любая помощь в этом была бы принята с благодарностью!
Код:
Sub SOC_work()
'Trying to sort each of the disciplines further, by Stage of Construction
Dim ar_SOC() As Variant
Dim int_NumRows As Long
Dim i_counter As Long
Dim j_Counter As Long
Dim lite As Range
Application.Calculation = xlCalculationManual
Application.ScreenUpdating = False
Sheets("AVEVA_PBOM_PARTS").Select
'Redimension the array size to the amount of parts in the PBOM
int_NumRows = ActiveSheet.UsedRange.Rows.count - 1
ReDim ar_SOC(int_NumRows, 3)
'now assignt he range into the array space
lite = Range("AA2", Range("AA2").End(xlDown))
ar_SOC[][1]=lite
End Sub
Есть ли способ сделать это без зацикливания через всю колонну?
Заполните 3 отдельных 2D-массива, а затем выполните цикл, чтобы объединить их в один. Зацикливание через массивы происходит намного быстрее, чем через ячейки в диапазоне. –