In questo articolo ti mostrerò come utilizzare l’oggetto Range Excel VBA per selezionare celle. Impara a selezionare celle con il VBA Excel!
L’oggetto Range rappresenta uno degli oggetti più importanti in VBA Excel. Esso può rappresentare una singola cella, un intervallo di celle o tutte le celle presenti all’interno di un foglio di lavoro.
Come tutti gli oggetti presenti in VBA Excel, anche l’oggetto Range ha diversi metodi e proprietà. Le proprietà descrivono l’oggetto, mentre i metodi eseguono un’azione con un oggetto.
Il linguaggio VBA ovvero il linguaggio delle macro Excel, ti consente per eseguire delle azioni o modificare le proprietà degli oggetti.
Attraverso dei semplici esempi ti mostrerò come utilizzare l’oggetto Range per selezionare una singola cella, un intervallo di celle o tutte le celle presenti all’interno di un foglio di lavoro.
Partiamo aprendo l’Editor VB. Utilizza i tasti rapidi ALT + F11.
Una volta aperto l’Editor. Inserisci un modulo standard.
Digita la parola Sub seguita dal nome della macro Excel. Successivamente premi il tasto INVIO.
Range Excel VBA: selezionare una singola cella con il VBA
Per selezionare una singola cella in un foglio di lavoro puoi usare il metodo Select.
Il codice seguente ti consente di selezionare la cella A2 nel foglio di lavoro attivo.
Dopo che esegui la macro il risultato sarà il seguente:
Range Excel VBA: selezionare un intervallo di celle contigue con il VBA
Per selezionare un intervallo di celle contigue all’interno di un foglio di lavoro puoi usare il seguente codice:
Attraverso il metodo Select dell’oggetto Range potrai selezionare l’intervallo A2:A10.
Dopo che esegui la macro il risultato sarà il seguente:
Range Excel VBA: selezionare un intervallo di celle non contigue con il VBA
Per selezionare celle non contigue puoi utilizzare il seguente codice.
In VBA è necessario separare le celle una virgola. Il codice ti permetterà di selezionare le celle A2, C2 e E2.
Dopo che esegui la macro il risultato sarà il seguente:
Per selezionare intervalli di celle non contigui puoi utilizzare il seguente codice.
Dopo che esegui la macro il codice selezionerà gli intervalli A2:A10 e C2:C10.
Range Excel VBA: selezionare la regione corrente con il VBA
Puoi utilizzare la proprietà CurrentRegion dell’oggetto Range per selezionare un intervallo di celle vuote e non vuote attorno a una specifica cella di input.
Se, ad esempio, hai il seguente intervallo di dati:
Il seguente codice seleziona la regione di celle intorno alla cella A2.
Dopo che esegui la macro il risultato sarà la selezione dell’intervallo A2:C5.
Range Excel VBA: selezionare un intervallo denominato in Excel con il VBA
Attraverso il linguaggio VBA puoi anche selezionare intervalli denominati. Supponiamo di avere assegnato il nome Intestazioni all’intervallo di celle A1:D4.
Puoi utilizzare il seguente codice per selezionare l’intervallo denominato Intestazioni.
Dopo che esegui la macro il risultato sarà il seguente:
Selezionare tulle le celle in un foglio di lavoro con il VBA
Infine, per selezionare tutte le celle in un foglio di lavoro puoi usare il seguente codice.
Dopo che esegui la macro il risultato sarà il seguente:
Attraverso questo codice VBA sarai in grado di selezionare rapidamente tutte le celle in un foglio di lavoro.
A differenza dei codici VBA Excel visti in precedenza, non viene utilizzato l’oggetto Range ma l’oggetto Cells.
NOTA
Ciascuno dei codici presenti in quest’articolo dovrà essere inserito all’interno delle tue macro Excel: tra la parola Sub ed End Sub.
Potrebbero interessarti anche i seguenti articoli:
Buongiorno,
ho visto il tuo sito ed è molto interessante.
Sto cercando di fare una macro dove faccio verifico se in una determinata cella c'è una cifra (2019) in caso contrario elimino la riga intera per poi automizzare il tutto per tutte le righe della tabella.
Ho provato la seguente macro ma non funziona.
Sub eliminaRiga()
Dim i As Integer
For i = 2 To 10000
Range("J" & i).Select
If Range("J" & i) = 2019 Then Selection.EntireRow.Delete
Next i
End Sub
Mi puo indicare dove sbaglio
Ciao Nathan,
ti suggerisco questa soluzione:
Sub eliminaRiga()
Dim i As Integer
For i = 10000 To 2 Step -1
Range("J" & i).Select
If IsNumeric(Range("J" & i).Value) Then Selection.EntireRow.Delete
Next i
End Sub
Dimmi se funziona. Attendo un tuo riscontro
Saluti
Damiano