Вопрос:
Я хочу поместить значения столбца в массив или список, не делая цикл for.
Так что в основном, если у меня есть:
Col A ——— 212 411 432
Я хочу поместить эти значения в массив или список. Вот как я думаю об этом, но я не знаю синтаксиса VBA:
- ссылка Col A как-то (т.е. myColumn = column (“Col A”)
- вставьте значения столбца в массив (т.е. myArray = myColumn
Я ценю вашу помощь!
Лучший ответ:
Вот один из способов:
Sub dural() Dim myColumn As Range Dim myArray() as Variant Set myColumn = Range(«A1:A3») myArray = myColumn For X = 1 To 3 MsgBox myArray(X, 1) Next X End Sub
Существуют способы сделать размер переменной диапазона и массива.
Ответ №1
Попробуй это
Sub Main() Dim arr() As Variant arr = Range(«A1:A3») For i = LBound(arr) To UBound(arr) Debug.Print arr(i, 1) Next End Sub Ответ №2
Также при работе с одним столбцом или строкой вы можете использовать TRANSPOSE для создания 1D варианта массива, в отличие от 2D массива по умолчанию (как это делал Сантош).
Этот метод 1D полезен в сочетании с функциями Filter, Join и Split, такими как возможно заполнить массив номерами строк, которые соответствуют определенным критериям без цикла?
Sub OneD() Dim arr arr = Application.Transpose(Range(«A1:A3»).Value2) End Sub
или
Sub TwoD() Dim arr arr = Range(«A1:A3»).Value2 End Sub