A chi programma in VBA per Excel capita di aver bisogno di sapere qual'è l'ultima riga e/o l'ultima colonna di un foglio contenente dati, magari per fare un ciclo di lettura delle celle.
Spesso si usano accrocchi vari per reperire questa informazione che simulano l'esecuzione manuale come per esempio la pressione dei tasti Fine e Freccia giù, oppure improbabili cicli che leggono le celle una dopo l'altra fino a trovarne una vuota. A parte i tempi lunghi di questo approccio resta il problema che alla prima cella vuota trovata ci si ferma dando per assunto che quella sia la fine dei dati, cosa che non è sempre vera.
Il metodo migliore è di gran lunga più semplice e veloce nonché più sicuro di quelli sopracitati.
VBA per Excel offre una proprietà dell'oggetto Worksheet che è molto utile in questo caso e cioè: UsedRange. Tale proprietà restituisce un oggetto di tipo Range che compre l'intera area di celle utilizzata nel Worksheet a cui è associato.
Pertanto per sapere quali sono l'ultima riga e l'ultima colonna usati è sufficiente fare:
Dim UltimaRiga as Long
Dim UltimaColonna as Long
UltimaRiga = Thisworkbook.Worksheets("MioFoglio").UsedRange.Rows.Count
UltimaColonna = Thisworkbook.Worksheets("MioFoglio").UsedRange.Columns.Count
Facile e veloce! :-D
Nessun commento:
Posta un commento