.End
restituisce l'ultima cella con valore (non vuota) partendo da una cella indicata e andando verso una determinata direzione
sintassi:
Cella di partenza.End(Direzione)
Direzione:
- xlDown direzione giù
- xlToRight direzione a destra
- xlToLeft direzione a sinistra
- xlUp direzione su
Utilizzo
- Range("A1").End(xlDown).Select seleziona l'ultima cella con valori nella colonna A (nel caso sia completamente vuota si fermerà all'ultima cella della colonna)
- Range(Cells(1, 1), Cells(1, 1).End(xlToRight)) area che si trova dalla cella A1 fino all'ultima colonna occupata andando verso destra (End(xlToRight))
esempio: setto zonac l'area che si trova dalla cella A1 fino all'ultima colonna occupata, andando verso destra (End(xlToRight))
Set zonac = Range(Cells(1, 1), Cells(1, 1).End(xlToRight))
- Range(Cells(1, 1), Cells(1, 1).End(xlDown)) area che si trova dalla cella A1 fino all'ultima riga occupata andando verso il basso (End(xlDown))
seleziono le celle dalla A1 fino all'ultima con valore consecutiva verso il basso
Range(Cells(1, 1), Cells(1, 1).End(xlDown)).Select
- Range(Selection,Selection.End(xlDown)).Select dalla cella selezionata seleziona tutte le celle che hanno dati verso il basso
- Selection.End(xlDown).Select dalla cella selezionata selezina la prima cella con valore verso il basso
.Offset(x,y)
comando che sposta la cella di x in basso (righe) e y a destra (colonne)
esempio:
Dim CL As Obcect
For Each CL In zona uso il ciclo for/next per esguire un comando in tutte le celle di zona
CL.Offset(0, -1).Select seleziono la cella a sinistra della cella CL
esempio: dalla cella attiva scendi di x celle e spostati di y celle a destra e seleziona le celle partendo come se fosse A1 fino a B4, indifferentemente quale sia (A1 é indicativo)
ActiveCell.Offset(x,y).Range("A1:B4").Select
.Move
vedi anche i comandi di movimento nei fogli di lavoro