Excel VBA: la riga di codice piu' importante

sessione precedente: Excel VBA: loops, codici colori

Introduciamo una delle righe di codice piu' importanti del linguaggio VBA, una semplice formula che mi permette di estrarre il riferimento di riga dell'ultima cella occupata in una determinata colonna. La formula e' la seguente:

RifRiga = Cells(Rows.Count, n_colonna).End(xlUp).Row

Potete provarla direttamente in un vostro foglio di lavoro: nella cella A23 scrivete "occupata", poi aprite l'editor VBA e scrivete la seguente routine

    Sub conta()
       cnt = Cells(Row.Count,1).End(xlup).Row
    End sub

        

Dove "1" e' il riferimento della colonna "A". Quindi con F8 fate girare la routine e fermatevi prima di uscire dal run, mantenendo quindi evidenziata la riga "End sub". Spostatevi col cursore su cnt, e vedrete che vale "23", che e' appunto la riga della cella dove ho scritto "occupata". Provate a scrivere "occupata" anche su "A18:A22", noterete che il risultato sara' sempre "23".

La formula prima si spinge fino alla fine del foglio di lavoro con Cells(Rows.Count,1) e poi con End(Xlup) ritorna verso l'alto fino alla prima cella occupata, ottenendone il riferimento di riga con .Row.

Se potrebbe risultare non' chiarissima, con un po' di pratica lo diventera', nel frattempo utilizziamola perche' ci permettera' di risolvere parecchi problemi.

Adesso, specialmente per coloro i quali si avvicinano al VBA per la prima volta, non dovrebbe essere difficile capire cosa produce la seguente routine

Sub conta()
  cnt = Cells(Rows.Count, 1).End(xlUp).Row
 For i = 1 To cnt
  Cells(i, 2) = i
 Next i
End Sub