In VBA è comodo lavorare con gli intervalli denominati piuttosto che sulle celle del foglio di Excel.
Con questo metodo è possibile usare la stessa routine su più intervalli.
Lavorando col metodo tradizionale diverso è il metodo di lavorare sulle due tabelle sottostanti:
|
|
Infatti lavorando con queste tabelle usando i normali riferimenti alle celle troviamo non poche difficoltà per creare riferimenti che vadano bene sia per le celle della tabella sia per altri elementi (per esempio una matrice o un altro intervallo), specialmente lavorando sulla seconda tabella.
|
In certi casi per eseguire elaborazioni sui dati in esse contenuti, o per creare delle tabelle dobbiamo ricorrere a calcoli abbastanza pesanti e complessi. Propongo subito un esempio: creare in una tabella una semplice tabellina. Per creare una tabellina normalmente è sufficiente la formula: R * C dove R è il contatore del ciclo che spazzola le righe e C è quello del ciclo che spazzola le colonne. For R = 1 To 10 |
Il lavoro su diverse tabelle disposte sul foglio di lavoro
Con la prima tabella qui sopra mostrata potremmo scrivere qualcosa del genere:
Con la seconda tabella vedremo complicarsi la formula per scrivere correttamente la nostra tabellina:
Il lavoro con un intervallo predefinito
Se decidiamo di lavorare con gli intervalli denominati nell'una e nell'altra tabella possiamo usare sempre la stessa formula. Basta cambiare inizialmente, solo il riferimento alla cella iniziale. Per riferirci poi a singole celle di un intervallo così denominato possiamo semplicemente usare come riferimenti le coordinate di riga e colonna
Determinare un intervallo
Abbiamo più di un modo per determinare e creare un intervallo denominato:
Conoscendo già le dimensioni da usare, come nell'esempio di sopra, si può opportunamente ridimensionare un intervallo anche partendo da una sola cella:
L'intervallo avrà una griglia di 10 righe per 10 colonne.
Conoscendo i dati che dovremmo copiare in un intervallo (esempio raccolti in una matrice)
Non conoscendo le dimensioni, ma il contenuto già esistente: