Mode direct pour mettre une colonne dans un tableau dans VBA

Je veux mettre les valeurs d'une colonne dans un tableau ou une list, sans avoir à faire une boucle for.

Donc, fondamentalement, si j'ai:

Col A --------- 212 411 432 

Je souhaite mettre ces valeurs dans un tableau ou une list. C'est ainsi que je pense à le faire, mais je ne connais pas la syntaxe VBA:

  1. reference Col A en quelque sorte (c.-à-d. myColumn = column ("Col A")
  2. insérez les valeurs de colonne dans le tableau (c.-à-d. myArray = myColumn

J'apprécie ton aide!

Voici un moyen:

 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 

Il existe des façons de rendre la taille de la gamme et de la variable du tableau.

Essaye ça

 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 

En travaillant également avec une seule colonne ou une seule ligne, vous pouvez utiliser TRANSPOSE pour créer un tableau variant 1D , par opposition au tableau 2D par défaut (comme Santosh l'a fait).

Cette méthode 1D est utile en combinaison avec les fonctions Filter , Join et Split , comme s'il est possible de remplir un tableau avec des nombres de lignes qui correspondent à un certain critère sans boucle?

 Sub OneD() Dim arr arr = Application.Transpose(Range("A1:A3").Value2) End Sub 

ou

 Sub TwoD() Dim arr arr = Range("A1:A3").Value2 End Sub