lettura normale

Gli array multidimensionali sulle macro Excel

In questa lezione del corso Excel ti spiego come usare gli array multidimensionali in una macro.

Cos'è un array multidimensionale? Si tratta di una struttura dati composta da più di una dimensione. Ad esempio, una matrice è composta da due dimensioni: un numero di righe e un numero di colonne. Gli array multidimensionali sono molto utili se devi gestire grandi quantità di informazioni.

Puoi creare un array multidimensionale usando una di queste sintassi

Dim matrice(0 To 2, 0 To 2)

oppure

Dim matrice(2, 2)

In entrambi i casi crei una matrice 3x3

Nota. In una macro l'indice degli array parte da zero per impostazione predefinita. Quindi, nell'esempio precedente ci sono tre righe con indice 0, 1, 2 e altrettante colonne con indice 0, 1, 2. Se vuoi far partire l'indice da 1 puoi usare l'istruzione Option Base 1.

Ti faccio un esempio pratico

Questa macro svolge i calcoli tramite una matrice.

  1. Sub Macro()
  2. Dim myArray(0 To 2, 0 To 2) as Integer
  3. Dim totale, i, j As Integer
  4. For i = 0 To 2
  5. For i = 0 To 2
  6. myArray(i,j) = Cells(i + 1, j + 1).Value
  7. totale = totale + myArray(i, j)
  8. Next j
  9. Next i
  10. Range("B5").Value = "Totale"
  11. Range("C5").Value = totale
  12. End Sub

La macro definisce un array a due dimensioni (matrice) chiamato "myArray" tramite l'istruzione Dim myArray(0 To 2, 0 To 2) as Integer.

Poi utilizza un doppio ciclo For Next per leggere i numeri nella tabella che si trova sul foglio di calcolo nell'area A1:C3

la tabella dell'area A1:C3

Infine, calcola la somma degli elementi nell'array e visualizza il risultato nella cella C5.

In questo caso la somma dei valori è 39.

il totale è 39

La creazione di un array multidimensionale all'interno di una macro Excel è molto utile per elaborare grandi quantità di dati in modo rapido ed efficiente.

Ad esempio, puoi creare anche array con più di due dimensioni.

 

Dim matrice(3, 3, 3)

Quest'ultimo comando crea un tensore 3x3x3

Se vuoi conoscere le dimensioni minime e massime di un array multidimensionale puoi usare le funzioni LBound() e Ubound().

Nota. Se la tua macro deve lavorare su un grande array multidimensionale, ti consiglio di utilizzare delle tecniche di ottimizzazione per evitare di avere dei problemi di prestazioni della macro o di memoria sul computer.

 




Se qualcosa non ti è chiaro, scrivi la tua domanda nei commenti.




FacebookTwitterLinkedinLinkedin