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 VBAEsempio 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:
- TROVA la funzione in Excel con esempi
- Cos'è la funzione VBA in Excel?
- Guida all'oggetto intervallo VBA
- Come usare la funzione VBA VLOOKUP?