Array VBA di Excel

L'array VBA di Excel non è altro che una variabile che può contenere lo stesso tipo di dati. Una matrice è un gruppo di una variabile che può memorizzare più di una variabile. Il nome della variabile sarà lo stesso ma può contenere valori diversi in una singola variabile. Un array VBA è un tipo di variabile che viene utilizzato per archiviare elenchi di dati dello stesso tipo.

Se abbiamo 5 celle che contengono numeri, dobbiamo dichiarare 5 variabili per contenere 5 numeri diversi nell'intervallo. Ma usando l'array possiamo contenere 5 valori diversi in una singola variabile stessa.

Come usare gli array VBA di Excel?

Comprendiamo come utilizzare gli array VBA di Excel e i loro tipi con alcuni esempi.

Puoi scaricare questo modello Excel Array VBA qui - Modello Excel Array VBA

Esempio 1

Dai un'occhiata all'esempio seguente. X è una variabile che contiene il tipo di dati dell'intero.

Codice:

 Sub Array_Example1 () Dim x As Integer x = 1 End Sub 

Ora assegna un valore 1 alla variabile dichiarata x.

Inseriamo il valore 1 nella cella A1.

Codice:

 Sub Array_Example1 () Dim x As Integer x = 1 Range ("A1"). Valore = x 
 End Sub 

Il valore x è uguale a 1 e nell'intervallo, A1 il valore verrà inserito come valore di x ovvero il valore di x è 1. Ora esegui il codice usando il tasto F5 o manualmente per vedere i risultati.

Nell'esempio sopra, x contiene solo una variabile che è tutto. Ma se voglio inserire 5 numeri consecutivi usando la singola variabile, devo usare la variabile array di tipo che può contenere molti valori di variabile in un singolo nome di variabile.

Esempio n. 2

Ora dai un'occhiata all'esempio seguente. Un nome di variabile è x e il tipo di dati è LUNGO. Ma durante la dichiarazione della variabile stessa ho aperto la parentesi e menzionato da 1 a 5. Ciò significa che la variabile x conterrà 5 diversi tipi di valori.

Codice:

 Sub Array_Example () Dim x (da 1 a 5) Lungo, i Come intero Sottotitolo 

Successivamente, ho assegnato i valori a ciascuna variabile. X (1) = 20 indica che la prima variabile deve essere uguale al valore di 20. X (2) = 25 indica che la seconda variabile deve essere uguale al valore di 25 e così via.

Codice:

 Sub Array_Example () Dim x (da 1 a 5) Come lungo, i Come intero x (1) = 20 x (2) = 25 x (3) = 44 x (4) = 78 x (5) = 96 End Sub 

In seguito ho dichiarato un'altra variabile chiamata "I", questo è il secondo tipo di una variabile e contiene il tipo di dati di intero .

Nel passaggio successivo, ho applicato i loop FOR per inserire i numeri assegnati all'array nella prima colonna. Ho impostato il valore della variabile i su 1 e ho ordinato al loop di funzionare da 1 a 5 volte. Quando il ciclo è in esecuzione per la prima volta, il valore i sarà uguale a 1. CELLS (I, 1) .value = x (i) significa che per la prima volta i è uguale a 1 ovvero CELLS (1, 1) .value = x (1), nella prima riga della prima colonna (cella A1) il valore sarà il valore della prima matrice ( x (1) ), ovvero 20.

Quando il ciclo viene eseguito per la seconda volta, il valore i diventa 2 cioè CELLS (2, 1) .value = x (2), nella seconda riga la prima colonna (A2) il valore sarà il secondo array ( x (2) ) cioè 25.

Codice:

 Sub Array_Example () Dim x (da 1 a 5) Quanto lungo, i Come intero x (1) = 20 x (2) = 25 x (3) = 44 x (4) = 78 x (5) = 96 Per i = Da 1 a 5 celle (i, 1) .Valore = x (i) Avanti i Fine sottotitoli 

In questo modo quando i loop continuano a funzionare, i valori continueranno a cambiare. Quando i loop vengono eseguiti per la terza volta, il valore della cella A3 sarà 44, il quarto ciclo eseguirà il valore della cella A4 sarà 78 quando i loop verranno eseguiti per l'ultima volta o il quinto valore della cella A5 sarà 96.

Dopo aver eseguito il codice utilizzando il tasto F5 o manualmente, otterremo i risultati come mostrato di seguito.

Tipi di array in Excel

Le matrici hanno tipi diversi in VBA. Esistono cinque tipi di array disponibili in Excel.

  • Matrice statica
  • Matrice dinamica
  • Matrice unidimensionale
  • Matrice bidimensionale
  • Matrice multidimensionale

Matrice statica

In questo tipo di array, la lunghezza dell'array è predeterminata in anticipo e rimane costante.

Codice:

 Sub Static_Example () Dim ArrayType (1 a 3) As Integer ArrayType (1) = 0 ArrayType (2) = 1 ArrayType (3) = 2 Cells (1, 1) .Value = ArrayType (1) Cells (1, 2) .Value = ArrayType (2) Cells (1, 3) .Value = ArrayType (3) End Sub 

Nel codice sopra, la lunghezza di ArrayType è determinata con largo anticipo da 1 a 3 e il tipo di dati è Intero.

Dopo aver eseguito il codice utilizzando il tasto F5 o manualmente, otterremo i risultati come mostrato di seguito.

Matrice dinamica

In questo tipo di array, la lunghezza dell'array non è predeterminata con largo anticipo.

Codice:

 Sub Dynamic_Example () Dim ArrayType () Come variante ReDim ArrayType (3) ArrayType (1) = "My Name" ArrayType (2) = "is" ArrayType (3) = "Excel" Cells (1, 1) .Value = ArrayType (1) Cells (1, 2) .Value = ArrayType (2) Cells (1, 3) .Value = ArrayType (3) End Sub 

In questo tipo di array i dati sono Variant e la lunghezza non è determinata qui. Dopo aver dichiarato la variabile, ho assegnato la lunghezza dell'array usando la funzione ReDim . Questa matrice inserirà valori come questo Cella A1 = Nome, Cella B1 = is, Cella C1 = Excel.

Matrice unidimensionale

In questo tipo di array, viene determinata la lunghezza ma in una dimensione funziona.

Codice:

 Sub One_Dimensional () Dim OneDimension (1 a 3) As String OneDimension (1) = 40 OneDimension (2) = 50 OneDimension (3) = 15 End Sub 

Mostra questi valori nella finestra di messaggio VBA.

Codice:

 Sub One_Dimensional () Dim OneDimension (1 a 3) As String OneDimension (1) = 40 OneDimension (2) = 50 OneDimension (3) = 15 MsgBox OneDimension (1) & ", " & OneDimension (2) & ", " & OneDimension (3) End Sub 

Esegui questo codice usando il tasto F5 o manualmente e otterremo il seguente risultato.

Matrice bidimensionale

In questo tipo di array, la lunghezza è determinata in due dimensioni e funziona.

Codice:

 Sub Two_Dimensional () Dim TwoDimension (1 a 2, 1 a 2) Più lungo Dim i Come intero Dim j Come intero TwoDimension (1, 2) = 40 TwoDimension (2, 1) = 50 TwoDimension (1, 1) = 15 TwoDimension (2, 2) = 10 End Sub 

Ora per memorizzare questi valori nelle celle sotto il codice.

Codice:

 Sub Two_Dimensional () Dim TwoDimension (1 a 2, 1 a 2) Più lungo Dim i Come intero Dim j Come intero TwoDimension (1, 2) = 40 TwoDimension (2, 1) = 50 TwoDimension (1, 1) = 15 TwoDimension (2, 2) = 10 Per i = 1 a 2 Per j = 1 a 2 celle (i, j) = TwoDimension (i, j) Next j Next i End Sub 

Questo memorizzerà i dati come di seguito.

Matrice multidimensionale

In questo tipo di array, la lunghezza è determinata ma in multidimensionalità funziona.

Codice:

 Sub Multi_Dimensional () Dim TwoDimension (da 1 a 3, da 1 a 2) Come long Dim i Come intero Dim j Come intero MultiDimension (1, 1) = 15 MultiDimension (1, 2) = 40 MultiDimension (2, 1) = 50 MultiDimension (2, 2) = 10 MultiDimension (3, 1) = 98 MultiDimension (3, 2) = 54 

Se guardi prima il codice sopra ho dichiarato l'array da 1 a 3 e poi da 1 a 2. Ciò significa che quando scrivo l'array in primo luogo posso usare solo da 1 a 3 numeri ma nel secondo spazio, posso usare solo 1 a 2 non 1 a 3.

Usando Loop possiamo inserire valori nelle celle. Ho usato due loop per un array multidimensionale.

Codice:

 Sub Multi_Dimensional () Dim TwoDimension (da 1 a 3, da 1 a 2) Come long Dim i Come intero Dim j Come intero MultiDimension (1, 1) = 15 MultiDimension (1, 2) = 40 MultiDimension (2, 1) = 50 MultiDimension (2, 2) = 10 MultiDimension (3, 1) = 98 MultiDimension (3, 2) = 54 Per i = 1 a 3 Per j = 1 A 2 celle (i, j) = MultiDimension (i, j) Successivo j Next i End Sub 

Dopo aver eseguito il codice utilizzando il tasto F5 o manualmente, otterremo i risultati come mostrato di seguito.

Cose da ricordare

  • Un array conterà i valori da zero, non da 1.
  • La matrice (0, 0) indica la prima colonna della prima riga.
  • Questo file macro di Excel deve essere salvato come cartella di lavoro abilitata per le macro.
  • In caso di array dinamico, è necessario assegnare il valore dell'array utilizzando la funzione REDIM in VBA.

Articoli consigliati

Questa è stata una guida agli array VBA. Qui abbiamo discusso i tipi di array in VBA e come utilizzare gli array VBA di Excel insieme ad alcuni esempi pratici e modelli di Excel scaricabili. Puoi anche consultare i nostri altri articoli suggeriti:

  1. TROVA la funzione in Excel con esempi
  2. Cos'è la funzione VBA in Excel?
  3. Guida all'oggetto intervallo VBA
  4. Come usare la funzione VBA VLOOKUP?

Categoria: