Array VBA

Array VBA di Excel

In generale si suppone che una variabile contenga un singolo valore alla volta, ma quando vogliamo memorizzare più valori in una singola variabile, questo tipo di variabile è noto come variabile di matrice, per utilizzare una variabile di matrice in VBA dobbiamo dichiarare o definirlo prima, possiamo definire la variabile array con la sua lunghezza o senza la sua lunghezza.

Supponiamo di avere dati che contengono centinaia di righe e più colonne e di dover creare un codice che utilizzerà i dati. Ora, in questo caso, dobbiamo creare multipli della variabile che preleverà il valore dalle celle e lo darà al programma. Sarà molto faticoso creare così tante variabili e quindi, in questi casi, utilizziamo Arrays in Excel.

Gli array mantengono il set di dati nella loro memoria e non hanno bisogno che noi dichiariamo la variabile per ciascuno dei valori che devono essere recuperati dai dati. La necessità di utilizzare array è dovuta al fatto che in una variabile excel sono progettati per contenere un valore alla volta, tuttavia, quando più valori vengono memorizzati da una variabile diventa un array.

  • Creare un array è come creare un'unità di memoria separata che può contenere i dati al suo interno. Per creare un array i dati devono essere dello stesso tipo.
  • Gli array che diamo per eccellere devono corrispondere al tipo di dati che abbiamo. Supponiamo che se abbiamo dati che hanno solo righe, quindi in questo caso, useremo la "matrice unidimensionale" e se i dati contengono anche colonne, allora dobbiamo usare "matrici bidimensionali" in quanto sono in grado di contenere solo i valori dalle righe e dalle colonne.
  • Gli array devono anche funzionare per funzionare come array dinamici o array statici. Dato che diamo un intervallo dinamico alla formula, possiamo anche creare la variabile Arrays. Gli array dinamici avranno la funzionalità per includere un numero infinito di righe e colonne. Nel caso in cui gli array che abbiamo definito siano di tipo statico, possono contenere solo un numero limitato di righe e colonne come definito al momento della creazione dell'array.

Spiegazione

Gli array lavorano sulla "regola matematica della matrice", ovvero identificano i dati solo in base alla loro posizione. Supponiamo che se dobbiamo far capire a VBA che abbiamo bisogno di "20" nella cella "B3", dobbiamo scrivere il codice della posizione come (3, 2) dove il primo valore sta per la posizione della riga e il secondo valore sta per il numero di colonna. In Excel World questo codice di posizioni è chiamato "Limite superiore" e "Limite inferiore". Per impostazione predefinita, la posizione in Excel inizia da uno e non da zero, quindi Excel vede "A1" come numero di riga 0 e non numero di riga 1.

Allo stesso modo, le colonne iniziano da zero e non da uno.

Questi array possono essere definiti come array statici o dinamici. Se li definiamo come array statici, significa che non possono contenere più delle variabili definite durante la codifica. Se non siamo sicuri del valore che deve essere memorizzato dagli array, creiamo array dinamici e in questi casi possono contenere un numero infinito di valori.

Ora, dopo aver selezionato il tipo di array richiesto, dovremo ora inserire i dati in questi array.

Questi dati devono essere forniti uno per uno per eccellere nei modi seguenti.

Dopo che i dati sono stati memorizzati in questi array, sono pronti per essere utilizzati come variabili nella codifica VBA.

Elenco dei primi 5 tipi di array

  1. Matrici statiche
  2. Dynamic Array
  3. Un array dimensionale
  4. Array bidimensionale
  5. Array multidimensionale

Vediamoli ciascuno in dettaglio.

# 1 - Array statici

Un array che ha un conteggio predefinito del valore che può essere memorizzato in esso.

# 2 - Array dinamico

Matrice con un conteggio di valori non predefinito che può gestire.

# 3 - Array unidimensionale

Un array che può contenere solo dati da righe o colonne.

# 4 - Array bidimensionale

Un array che può memorizzare un valore dalle righe e dalle colonne.

# 5 - Array multidimensionale

Come utilizzare gli array in VBA (con esempi)?

Puoi scaricare questi array nel modello Excel VBA qui - Array nel modello Excel VBA

Gli array possono essere utilizzati in molte situazioni, ma devono essere utilizzati quando il numero di variabili da dichiarare è elevato e non è possibile dichiararle.

Di seguito sono riportati alcuni esempi, ma prima di andare agli esempi impareremo ad aprire l'editor VBA con il tasto di scelta rapida

Questo aprirà l'editor VBA, da lì dobbiamo inserire il codice in "Questo foglio di lavoro".

Esempio 1

Scegli il tipo di array che desideri, dovrebbe essere un array dinamico o statico?

Se abbiamo bisogno di un array dinamico, definiremo la dimensione come "variante".

Se abbiamo bisogno di un array statico, definiremo una dimensione come "Static".

Esempio n. 2

Definisci le colonne e le righe che desideri vengano memorizzate dall'array.

Se abbiamo inserito "1" nella parentesi, significa che l'array può contenere un valore di 2 righe poiché il conteggio Excel inizia da zero.

Se abbiamo bisogno anche di colonne e righe, dobbiamo definirle entrambe.

Qui "1 a 2" significa che due righe e "1 a 3" significa che tre colonne.

Qui abbiamo cambiato la regola di come Excel conta le righe e gli abbiamo chiesto di contare da "1" e non da zero.

Esempio n. 3

L'input dei dati nell'array.

I dati devono essere inseriti nelle celle in modo saggio. Qui i dati devono essere inseriti nella forma (I, j) dove "I" indica la riga e "J" indica la colonna.

Quindi "a (1,1") significa che la cella "A1"

Esempio n. 4

Chiusura del codice.

Dopo che i dati sono stati inseriti per l'array, l'ultimo passaggio sarà chiudere il codice.

Cose da ricordare

  • Per impostazione predefinita, Excel conterà le righe a partire da zero. Ciò significa che "2" al posto di "I" significherà 3 righe e non 2 righe. Lo stesso vale per "J".
  • I dati che devono essere inseriti per l'array devono essere avviati da (0, 0) cioè dalla prima riga e dalla prima colonna.
  • Nel caso in cui stiamo usando gli array dinamici, allora sarà necessaria la funzione di "VBA REDIM" per definire il numero di righe e colonne che devono essere memorizzate.
  • In caso di creazione di un array bidimensionale, dobbiamo utilizzare "Integer" come dimensione.
  • Il file excel deve essere salvato nella versione "Macro compatibile" altrimenti la codifica che abbiamo fatto in VBA svanirà e non verrà eseguita la prossima volta.