Se stai sviluppando macro di Excel, potresti chiederti come puoi selezionare una cella relativa a quella in cui ti trovi. Ad esempio, se si utilizza Excel e si preme il tasto Home, viene selezionata la cella a sinistra della riga corrente. Sfortunatamente, l’utilizzo del registratore di macro per registrare ciò non aiuta in questa situazione, poiché registra la destinazione dell’azione, invece dell’azione effettiva. Ad esempio, se premi Home e sei sulla quarta riga di un foglio di lavoro, Excel non registra l’azione Home, ma registra invece la destinazione, come segue:

Range("A4").Select

È fantastico se vuoi sempre andare alla cella A4, ma terribile se vuoi andare alla prima cella di qualunque riga ti trovi.

Come per molte attività in VBA, ci sono diversi modi per affrontare una soluzione a questo dilemma. Il primo metodo è in realtà una variazione di ciò che restituisce il registratore di macro, come mostrato sopra. Tutto quello che devi fare è cambiare il designatore di riga in modo che rappresenti la riga corrente, come nel seguente:

Range("A" & (ActiveCell.Row)).Select

VBA capisce qual è la riga corrente, la schiaffeggia insieme alla “A”

designatore e fornisce un riferimento di cella che funziona con il metodo Range.

Un’altra tecnica che puoi usare è mettere in funzione la proprietà Cells, come segue:

Cells(Application.ActiveCell.Row, 1).Select

Questo approccio, ovviamente, può essere modificato in modo da selezionare effettivamente una determinata cella nella riga corrente. Tutto quello che devi fare è cambiare la designazione della colonna (1, nell’esempio sopra) in un numero che rappresenta la colonna desiderata.

Un altro approccio (che produce lo stesso risultato) consiste nell’usare l’oggetto Range insieme alla proprietà Cells, come mostrato qui:

Range(Cells(Selection.Row, 1).Address).Select

Selection.Row fornisce il numero di riga della selezione corrente. La proprietà Address del metodo Cells restituisce l’indirizzo di una cella particolare nel formato A $ 1 $. Questo indirizzo viene quindi utilizzato come parametro per l’oggetto Range e la cella effettiva viene selezionata dal metodo Select.

_Nota: _

Se desideri sapere come utilizzare le macro descritte in questa pagina (o in qualsiasi altra pagina dei siti ExcelTips), ho preparato una pagina speciale che include informazioni utili.

ExcelTips è la tua fonte di formazione economica su Microsoft Excel.

Questo suggerimento (2267) si applica a Microsoft Excel 97, 2000, 2002 e 2003. Puoi trovare una versione di questo suggerimento per l’interfaccia a nastro di Excel (Excel 2007 e versioni successive) qui: