Sei sulla pagina 1di 10

Selezione di celle e intervalli utilizzando procedure di Visual Basic in Excel

 Utilizzando il sito si accetta l’uso di cookies per analisi, risultati personalizzati e pubblicità. Ulteriori informazioni

Raccontaci la tua esperienza sul nostro sito


Raccontaci la tua esperienza sul nostro sito 

Selezione di celle e intervalli utilizzando procedure di Visual Basic in


Excel
Si applica a: Microsoft Office Excel 2003, Microsoft Office Excel 2007, Microsoft Excel 2010,
Mostra dettagli

Informazioni

Microsoft fornisce esempi di programmazione a scopo puramente illustrativo, senza alcuna garanzia di qualsiasi tipo,
sia espressa che implicita, ivi incluse, senza limitazioni, le garanzie implicite di commerciabilità o idoneità per uno
scopo particolare. In questo articolo si presuppone che l'utente conosca il linguaggio di programmazione in questione
e gli strumenti utilizzati per creare ed eseguire il debug delle procedure. Gli esperti Microsoft sono autorizzati a fornire
spiegazioni in merito alla funzionalità di una particolare routine, ma in nessun caso a modificare questi esempi per
fornire funzionalità aggiuntive o a creare routine atte a soddisfare specifiche esigenze. Negli esempi riportati in questo
articolo vengono utilizzati i metodi di Visual Basic elencati nella seguente tabella.

Metodo Argomenti
------------------------------------------
Activate nessuno
Cells rowIndex, columnIndex
Application.Goto reference, scroll
Offset rowOffset, columnOffset
Range cell1
cell1, cell2
Resize rowSize, columnSize
Select nessuno
Sheets index (o sheetName)
Workbooks index (o bookName)
End direction
CurrentRegion nessuno

Negli esempi forniti in questo articolo vengono utilizzate le proprietà di Visual Basic elencate nella seguente tabella.

Proprietà Utilizzo
---------------------------------------------------------------------
ActiveSheet per specificare il foglio attivo
Il problema Sì
no
yes
è stato risolto?per
specificare
ActiveWorkbook No la cartella di lavoro attiva

https://support.microsoft.com/it-it/help/291308/how-to-select-cells-ranges-by-using-visual-basic-procedures-in-excel[29/01/2018 14:42:28]
Selezione di celle e intervalli utilizzando procedure di Visual Basic in Excel

Columns.Count per contare il numero di colonne nell'elemento specificato


Rows.Count per contare il numero di righe nell'elemento specificato
Selection per fare riferimento all'intervallo attualmente selezionato

1: Selezione di una cella nel foglio di lavoro attivo

Per selezionare la cella D5 nel foglio di lavoro attivo, è possibile utilizzare uno degli esempi seguenti:

ActiveSheet.Cells(5, 4).Select

Oppure

ActiveSheet.Range("D5").Select

2: Selezione di una cella in un altro foglio di lavoro nella stessa cartella di lavoro

Per selezionare la cella E6 in un altro foglio di lavoro nella stessa cartella di lavoro, è possibile utilizzare uno degli
esempi seguenti:

Application.Goto ActiveWorkbook.Sheets("Sheet2").Cells(6, 5)

Oppure

Application.Goto (ActiveWorkbook.Sheets("Sheet2").Range("E6"))

In alternativa è possibile attivare il foglio di lavoro, quindi utilizzare il metodo 1 sopra descritto per selezionare la cella:

Sheets("Sheet2").Activate
ActiveSheet.Cells(6, 5).Select

3: Selezione di una cella in un foglio di lavoro in una diversa cartella di lavoro

Per selezionare la cella F7 in un foglio di lavoro in una diversa cartella di lavoro, è possibile utilizzare uno degli esempi
seguenti:

Application.Goto Workbooks("BOOK2.XLS").Sheets("Sheet1").Cells(7, 6)

Oppure

Application.Goto Workbooks("BOOK2.XLS").Sheets("Sheet1").Range("F7")

In alternativa è possibile attivare il foglio di lavoro, quindi utilizzare il metodo 1 sopra descritto per selezionare la cella:

Workbooks("BOOK2.XLS").Sheets("Sheet1").Activate
ActiveSheet.Cells(7, 6).Select

4: Selezione di un intervallo di celle nel foglio di lavoro attivo

https://support.microsoft.com/it-it/help/291308/how-to-select-cells-ranges-by-using-visual-basic-procedures-in-excel[29/01/2018 14:42:28]
Selezione di celle e intervalli utilizzando procedure di Visual Basic in Excel

Per selezionare l'intervallo C2:D10 nel foglio di lavoro attivo, è possibile utilizzare uno qualsiasi degli esempi seguenti:

ActiveSheet.Range(Cells(2, 3), Cells(10, 4)).Select

ActiveSheet.Range("C2:D10").Select

ActiveSheet.Range("C2", "D10").Select

5: Selezione di un intervallo di celle in un altro foglio di lavoro nella stessa cartella di


lavoro

Per selezionare l'intervallo D3:E11 in un altro foglio di lavoro nella stessa cartella di lavoro, è possibile utilizzare uno
degli esempi seguenti:

Application.Goto ActiveWorkbook.Sheets("Sheet3").Range("D3:E11")

Application.Goto ActiveWorkbook.Sheets("Sheet3").Range("D3", "E11")

In alternativa è possibile attivare il foglio di lavoro, quindi utilizzare il metodo 4 sopra descritto per selezionare
l'intervallo:

Sheets("Sheet3").Activate
ActiveSheet.Range(Cells(3, 4), Cells(11, 5)).Select

6: Selezione di un intervallo di celle in un foglio di lavoro in una diversa cartella di lavoro

Per selezionare l'intervallo E4:F12 in un foglio di lavoro in una diversa cartella di lavoro, è possibile utilizzare uno degli
esempi seguenti:

Application.Goto Workbooks("BOOK2.XLS").Sheets("Sheet1").Range("E4:F12")

Application.Goto _
Workbooks("BOOK2.XLS").Sheets("Sheet1").Range("E4", "F12")

In alternativa è possibile attivare il foglio di lavoro, quindi utilizzare il metodo 4 sopra descritto per selezionare
l'intervallo:

Workbooks("BOOK2.XLS").Sheets("Sheet1").Activate
ActiveSheet.Range(Cells(4, 5), Cells(12, 6)).Select

7: Selezione di un intervallo denominato nel foglio di lavoro attivo

Per selezionare l'intervallo denominato "Test" nel foglio di lavoro attivo, è possibile utilizzare uno degli esempi
seguenti:

Range("Test").Select

Application.Goto "Test"

8: Selezione di un intervallo denominato in un altro foglio di lavoro nella stessa cartella di


lavoro

https://support.microsoft.com/it-it/help/291308/how-to-select-cells-ranges-by-using-visual-basic-procedures-in-excel[29/01/2018 14:42:28]
Selezione di celle e intervalli utilizzando procedure di Visual Basic in Excel

Per selezionare l'intervallo denominato "Test" in un altro foglio di lavoro nella stessa cartella di lavoro, è possibile
utilizzare l'esempio seguente:

Application.Goto Sheets("Sheet1").Range("Test")

In alternativa è possibile attivare il foglio di lavoro, quindi utilizzare il metodo 7 sopra descritto per selezionare
l'intervallo denominato:

Sheets("Sheet1").Activate
Range("Test").Select

9: Selezione di un intervallo denominato in un foglio di lavoro in una diversa cartella di


lavoro

Per selezionare l'intervallo denominato "Test" in un foglio di lavoro in una diversa cartella di lavoro, è possibile
utilizzare l'esempio seguente:

Application.Goto _
Workbooks("BOOK2.XLS").Sheets("Sheet2").Range("Test")

In alternativa è possibile attivare il foglio di lavoro, quindi utilizzare il metodo 7 sopra descritto per selezionare
l'intervallo denominato:

Workbooks("BOOK2.XLS").Sheets("Sheet2").Activate
Range("Test").Select

10: Selezione di una cella relativa alla cella attiva

Per selezionare una cella che si trova cinque righe sotto e quattro colonne a sinistra della cella attiva, è possibile
utilizzare l'esempio seguente:

ActiveCell.Offset(5, -4).Select

Per selezionare una cella che si trova due righe sopra e tre colonne a destra della cella attiva, è possibile utilizzare
l'esempio seguente:

ActiveCell.Offset(-2, 3).Select

Nota Se si tenta di selezionare una cella che si trova "all'esterno del foglio di lavoro", verrà generato un errore. Il primo
esempio sopra indicato restituirà un errore se la cella attiva si trova nelle colonne da A a D, in quanto lo spostamento
di quattro colonne verso sinistra comporterebbe lo spostamento della cella attiva a un indirizzo di cella non valido.

11: Selezione di una cella relativa a un'altra cella non attiva

Per selezionare una cella che si trova cinque righe sotto e quattro colonne a destra della cella C7, è possibile utilizzare
uno degli esempi seguenti:

ActiveSheet.Cells(7, 3).Offset(5, 4).Select

ActiveSheet.Range("C7").Offset(5, 4).Select

12: Selezione di un intervallo di celle spostato rispetto a un intervallo specificato

https://support.microsoft.com/it-it/help/291308/how-to-select-cells-ranges-by-using-visual-basic-procedures-in-excel[29/01/2018 14:42:28]
Selezione di celle e intervalli utilizzando procedure di Visual Basic in Excel

Per selezionare un intervallo di celle con le stesse dimensioni dell'intervallo denominato "Test", ma spostato di quattro
righe sotto e tre colonne a destra, è possibile utilizzare l'esempio seguente:

ActiveSheet.Range("Test").Offset(4, 3).Select

Se l'intervallo denominato si trova in un altro foglio di lavoro non attivo, attivare innanzitutto il foglio di lavoro, quindi
selezionare l'intervallo utilizzando l'esempio seguente:

Sheets("Sheet3").Activate
ActiveSheet.Range("Test").Offset(4, 3).Select

13: Selezione di un intervallo specificato e ridimensionamento della selezione

Per selezionare l'intervallo denominato "Database" ed estendere quindi la selezione di cinque righe, è possibile
utilizzare l'esempio seguente:

Range("Database").Select
Selection.Resize(Selection.Rows.Count + 5, _
Selection.Columns.Count).Select

14: Selezione di un intervallo specificato, spostamento e ridimensionamento

Per selezionare un intervallo quattro righe sotto e tre colonne a destra dell'intervallo denominato "Database",
includendo due righe e una colonna in più dell'intervallo denominato, è possibile utilizzare l'esempio seguente:

Range("Database").Select
Selection.Offset(4, 3).Resize(Selection.Rows.Count + 2, _
Selection.Columns.Count + 1).Select

15: Selezione dell'unione di due o più intervalli specificati

Per selezionare l'unione, ovvero l'area combinata, di due intervalli denominati "Test" e "Sample", è possibile utilizzare
l'esempio seguente:

Application.Union(Range("Test"), Range("Sample")).Select

Per il corretto funzionamento di questo esempio, è necessario che entrambi gli intervalli si trovino nello stesso foglio di
lavoro. Il metodo Union, inoltre, non può essere utilizzato su fogli diversi. Ad esempio, la riga seguente funziona
correttamente,

Set y = Application.Union(Range("Sheet1!A1:B2"), Range("Sheet1!C3:D4"))

mentre la riga riportata di seguito

Set y = Application.Union(Range("Sheet1!A1:B2"), Range("Sheet2!C3:D4"))

restituisce un messaggio di errore analogo al seguente:

Errore del metodo Union per la classe Application

16: Selezione dell'intersezione di due o più intervalli specificati

https://support.microsoft.com/it-it/help/291308/how-to-select-cells-ranges-by-using-visual-basic-procedures-in-excel[29/01/2018 14:42:28]
Selezione di celle e intervalli utilizzando procedure di Visual Basic in Excel

Per selezionare l'intersezione di due intervalli denominati "Test" e "Sample", è possibile utilizzare l'esempio seguente:

Application.Intersect(Range("Test"), Range("Sample")).Select

Per il corretto funzionamento di questo esempio, è necessario che entrambi gli intervalli si trovino nello stesso foglio di
lavoro.

Negli esempi da 17 a 21 di questo articolo viene fatto riferimento al seguente set di dati di esempio. In ogni esempio è
specificato l'intervallo di celle nei dati di esempio che verrà selezionato.

A1: Nome B1: Vendite C1: Quantità


A2: a B2: € 10 C2: 5
A3: b B3: C3: 10
A4: c B4: € 10 C4: 5
A5: B5: C5:
A6: Totale B6: € 20 C6: 20

17: Selezione dell'ultima cella di una colonna di dati contigui

Per selezionare l'ultima cella in una colonna contigua, utilizzare l'esempio seguente:

ActiveSheet.Range("a1").End(xlDown).Select

Se si utilizza questo codice con la tabella di esempio, verrà selezionata la cella A4.

18: Selezione della cella vuota nella parte inferiore di una colonna di dati contigui

Per selezionare la cella al di sotto di un intervallo di celle contigue, utilizzare l'esempio seguente:

ActiveSheet.Range("a1").End(xlDown).Offset(1,0).Select

Se si utilizza questo codice con la tabella di esempio, verrà selezionata la cella A5.

19: Selezione di un intero intervallo di celle contigue in una colonna

Per selezionare un intervallo di celle contigue in una colonna, utilizzare uno degli esempi seguenti:

ActiveSheet.Range("a1", ActiveSheet.Range("a1").End(xlDown)).Select

Oppure

ActiveSheet.Range("a1:" & ActiveSheet.Range("a1"). _


End(xlDown).Address).Select

https://support.microsoft.com/it-it/help/291308/how-to-select-cells-ranges-by-using-visual-basic-procedures-in-excel[29/01/2018 14:42:28]
Selezione di celle e intervalli utilizzando procedure di Visual Basic in Excel

Se si utilizza questo codice con la tabella di esempio, verranno selezionate le celle da A1 ad A4.

20: Selezione di un intero intervallo di celle non contigue in una colonna

Per selezionare un intervallo di celle non contigue, utilizzare uno degli esempi seguenti:

ActiveSheet.Range("a1",ActiveSheet.Range("a65536").End(xlUp)).Select

Oppure

ActiveSheet.Range("a1:" & ActiveSheet.Range("a65536"). _


End(xlUp).Address).Select

Se si utilizza questo codice con la tabella di esempio, verranno selezionate le celle da A1 ad A6.

21: Selezione di un intervallo rettangolare di celle

Per selezionare un intervallo rettangolare di celle intorno a una cella, utilizzare il metodo CurrentRegion. L'intervallo
selezionato dal metodo CurrentRegion è un'area delimitata da una combinazione qualsiasi di celle e colonne vuote. Di
seguito è riportato un esempio di utilizzo del metodo CurrentRegion:

ActiveSheet.Range("a1").CurrentRegion.Select

Con questo codice verranno selezionate le celle da A1 a C4. Di seguito sono riportati altri esempi che consentono di
selezionare lo stesso intervallo di celle:

ActiveSheet.Range("a1", _
ActiveSheet.Range("a1").End(xlDown).End(xlToRight)).Select

Oppure

ActiveSheet.Range("a1:" & _
ActiveSheet.Range("a1").End(xlDown).End(xlToRight).Address).Select

In alcuni casi può essere necessario selezionare le celle da A1 a C6. In questo esempio il metodo CurrentRegion non
funzionerà, in quanto la riga 5 è vuota. Negli esempi seguenti verranno selezionate tutte le celle:

lastCol = ActiveSheet.Range("a1").End(xlToRight).Column
lastRow = ActiveSheet.Cells(65536, lastCol).End(xlUp).Row
ActiveSheet.Range("a1", ActiveSheet.Cells(lastRow, lastCol)).Select

Oppure

lastCol = ActiveSheet.Range("a1").End(xlToRight).Column
lastRow = ActiveSheet.Cells(65536, lastCol).End(xlUp).Row
ActiveSheet.Range("a1:" & _

https://support.microsoft.com/it-it/help/291308/how-to-select-cells-ranges-by-using-visual-basic-procedures-in-excel[29/01/2018 14:42:28]
Selezione di celle e intervalli utilizzando procedure di Visual Basic in Excel

ActiveSheet.Cells(lastRow, lastCol).Address).Select

22. Selezione di più colonne non contigue di lunghezza variabile

Per selezionare più colonne non contigue di lunghezza variabile, utilizzare la tabella di esempio e l'esempio di macro
seguenti:

A1: 1 B1: 1 C1: 1 D1: 1


A2: 2 B2: 2 C2: 2 D2: 2
A3: 3 B3: 3 C3: 3 D3: 3
A4: B4: 4 C4: 4 D4: 4
A5: B5: 5 C5: 5 D5:
A6: B6: C6: 6 D6:

StartRange = "A1"
EndRange = "C1"
Set a = Range(StartRange, Range(StartRange).End(xlDown))
Set b = Range(EndRange, Range(EndRange).End(xlDown))
Union(a,b).Select

Se si utilizza questo codice con la tabella di esempio, verranno selezionate le celle A1:A3 e C1:C6.

NOTE SUGLI ESEMPI

In genere è possibile omettere la proprietà ActiveSheet, essendo implicita se non viene denominato un foglio
specifico. Ad esempio, anziché

ActiveSheet.Range("D5").Select

è possibile utilizzare:

Range("D5").Select

Anche la proprietà ActiveWorkbook può essere generalmente omessa. A meno che venga denominata una
cartella di lavoro specifica, è implicita la cartella di lavoro attiva.

Quando si utilizza il metodo Application.Goto, per utilizzare due metodi Cells nel metodo Range quando
l'intervallo specificato si trova in un altro foglio di lavoro non attivo, è necessario includere ogni volta l'oggetto
Sheets. Ad esempio:

Application.Goto Sheets("Sheet1").Range( _
Sheets("Sheet1").Range(Sheets("Sheet1").Cells(2, 3), _
Sheets("Sheet1").Cells(4, 5)))

Per qualsiasi elemento tra virgolette, ad esempio l'intervallo denominato "Test", è inoltre possibile utilizzare
una variabile il cui valore sia una stringa di testo. Ad esempio, anziché

ActiveWorkbook.Sheets("Sheet1").Activate

è possibile utilizzare

https://support.microsoft.com/it-it/help/291308/how-to-select-cells-ranges-by-using-visual-basic-procedures-in-excel[29/01/2018 14:42:28]
Selezione di celle e intervalli utilizzando procedure di Visual Basic in Excel

ActiveWorkbook.Sheets(myVar).Activate

dove il valore di myVar è "Sheet1".

Riferimenti

Per ulteriori informazioni sull'utilizzo del codice di esempio riportato in questo articolo, fare clic sul numero
dell'articolo della Microsoft Knowledge Base riportato di seguito:

290140 Esecuzione del codice di esempio per i programmi di Office XP contenuto negli articoli della Knowledge
Base

Ultimo aggiornamento: 08 gen 2017

Supporto

Trova download

Supporto account

Elenco dei prodotti supportati

Ciclo di vita del supporto per i prodotti

Sicurezza

Centro sicurezza e protezione

Scarica Security Essentials

Strumento di rimozione malware

Contattaci

Contatta il Supporto tecnico Microsoft

Domande sulla privacy

Individuare le sedi Microsoft in tutto il mondo

https://support.microsoft.com/it-it/help/291308/how-to-select-cells-ranges-by-using-visual-basic-procedures-in-excel[29/01/2018 14:42:28]
Selezione di celle e intervalli utilizzando procedure di Visual Basic in Excel

 Italiano (Italia)

Condizioni per l'utilizzo


Privacy e cookie
Marchi
© Microsoft 2018

https://support.microsoft.com/it-it/help/291308/how-to-select-cells-ranges-by-using-visual-basic-procedures-in-excel[29/01/2018 14:42:28]