Позвольте у Вас уточнить каким именно образом следует обращаться к определенному столбу многомерного массива? Я посчитал, что подобную задачу можно выполнить следующим образом:
Код
Sub arr_Test()
Dim arr(), arr_mnogom()
Dim k As Integer
k = 73 ' контрольное значение
' ////// одномерный массив ////
arr = Range(Cells(2, 2), Cells(11, 2)) ' пополнение одномерного массива из диапазона
stroka_v_massive = Application.Match(k, arr()) ' Расположение в массиве
' ////// одномерный массив ////
arr_mnogom = Range(Cells(2, 7), Cells(11, 9)) ' пополнение многомерного массива из диапазона
stroka_v_massive = Application.Match(k, arr_mnogom()(, 3)) ' Расположение в массиве
End Sub
На строке:
Код
stroka_v_massive = Application.Match(k, arr_mnogom()(, 3)) ' Расположение в массиве
выходит ошибка Syntax Error. Что по все видимости говорит о несколько неверном моем понимании об обращении к третьему столбцу массива.
Вопроса будет два: 1) Возможно ли обращение к определенному столбцу массива? 2) Возможно ли без циклическим способом пополнить одномерный массив из многомерного?
Прошу прощения у модераторов, если Они посчитают, что вторая часть вопроса "Выходит за Рамки темы". Если подобный способ действительно существует это решит проблему. Но в любом случае если есть возможность непосредственно обратиться к определенному столбцу, то вторая часть вопроса уже не актуальна, но все равно познавательна.
Sub ArrayDemo()
Dim ar(1 To 5, 1 To 3), i&, r&, c&, row4, col3, a2
For r = 1 To 5
For c = 1 To 3
ar(r, c) = i: i = i + 1
Next
Next
row4 = WorksheetFunction.Index(ar, 4)
col3 = WorksheetFunction.Index(WorksheetFunction.Transpose(ar), 3)
a2 = WorksheetFunction.Index(ar, 0, 3)
Stop ' В окне Locals изучайти содержимое и типы переменных
' row4, col3, a2
' взятых из ar без использования циклов
End Sub
Если длина значения элемента массива будет больше 255 (или 256?) символов такой подход не сработает. И на больших массивах, перенос нужного измерения массива в другой массив в цикле, по скорости быстрее, чем вышеуказанные способы
Согласие есть продукт при полном непротивлении сторон