Прямой способ поместить столбец в массив в VBA

Вопрос: Я хочу поместить значения столбца в массив или список, не делая цикл for. Так что в основном, если у меня есть: Col A --------- 212 411 432 Я хочу поместить эти значения в массив или список. Вот как я думаю об этом, но я не знаю синтаксиса VBA: ссылка Col A как-то (т.е. myColumn

Вопрос:

Я хочу поместить значения столбца в массив или список, не делая цикл for.

Так что в основном, если у меня есть:

Col A ——— 212 411 432

Я хочу поместить эти значения в массив или список. Вот как я думаю об этом, но я не знаю синтаксиса VBA:

  1. ссылка Col A как-то (т.е. myColumn = column (“Col A”)
  2. вставьте значения столбца в массив (т.е. 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

Оцените статью
Добавить комментарий