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:
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