Как заполнить массив из столбца листа в Excel - PullRequest
0 голосов
/ 28 мая 2018

У меня есть такой массив:

myColumns = Array("Serial","Practice","Manager", "QTD")

Но я хочу извлечь его значения из листа, чтобы сделать его более динамичным.(Значения и их количество могут различаться)

enter image description here

Поэтому я попытался повлиять на диапазон от A2 до последнего значения столбца в моем массиве:

myColumns = Range(Range("A2"), Range("A2").End(xlDown)).Value

Это приводит к:

UBound(myColumns) -> 4 -> OK

НО, когда я делаю это:

s = myColumns(3) -> Subscribe out of range ! 

Как это возможно?

Как можноЯ правильно заполнил?Спасибо!

1 Ответ

0 голосов
/ 28 мая 2018

Application.Transpose ваш хороший друг, если вы анализируете один столбец:

Sub TestMe1()
    Dim myArr As Variant
    myArr = Application.Transpose(Range("A1:A10"))

    Dim cnt As Long
    For cnt = LBound(myArr) To UBound(myArr)
        Debug.Print myArr(cnt)
    Next cnt

End Sub

enter image description here


Если вы анализируете одну строку , вы должны транспонировать дважды:

Sub TestMe2()
    Dim myArr As Variant
    With Application
        myArr = .Transpose(.Transpose(Range("A1:AI1")))
    End With
End Sub

enter image description here


Если вы просто анализируете несколько диапазонов или не используете .Transpose () , вы должны ссылаться на столбцы и строки:

enter image description here


Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...