Когда вы копируете данные из диапазона, а диапазон содержит более одной ячейки, вы в любом случае получаете n 2-мерный массив (даже если у вас только одна строка или один столбец).
Для доступа одно значение из этого массива, вы должны предоставить оба индекса, например arr(2, 1)
. Однако, если вы хотите получить один -мерный массив, содержащий все значения из строки (первый индекс) или столбца (второй индекс), вы нужно создать этот массив самостоятельно - в VBA нет функции slice
. Вы можете измерить массив во время выполнения с помощью команды ReDim
:
Dim array_slice(), i As Long
ReDim array_slice(LBound(arr, 1) To UBound(arr, 1))
For i = LBound(arr, 1) To UBound(arr, 1)
array_slice(i) = arr(i, 2)
Next i
Чтобы получить значения столбца, используйте
Dim array_slice(), i As Long
ReDim array_slice(LBound(arr, 2) To UBound(arr, 2))
For i = LBound(arr, 2) To UBound(arr, 2)
array_slice(i) = arr(2, i)
Next i