Passaggio attraverso un intervallo di celle non contiguo (Microsoft Excel)
Stephe deve sviluppare una macro che eseguirà un’operazione basata sulle celle che un utente seleziona prima di eseguire la macro. Sa come farlo se l’utente seleziona un intervallo di celle, ma non sa come scorrere le celle in una selezione se l’utente seleziona un intervallo di celle non contiguo.
Quando si tratta di VBA, c’è pochissima differenza tra una selezione contigua e una selezione non contigua. Excel ti consente di accedere a ciascuno di essi allo stesso modo. Considera il seguente frammento di codice:
Dim c As Range For Each c In Selection ' do something here MsgBox c.Address & vbTab & c.Value Next c
In questo caso, le celle nell’intervallo selezionato vengono spostate una alla volta utilizzando il ciclo For … Next. All’interno del ciclo la variabile c rappresenta una singola cella e può essere utilizzata nei riferimenti, come mostrato.
Se, per qualche motivo, vuoi accedere a ciascuna area contigua all’interno della selezione, puoi farlo rivolgendoti specificamente al gruppo Aree, come mostrato in questo frammento:
Dim a As Range Dim c As Range For Each a In Selection.Areas 'Now each a refers to a contiguous range 'Do something here with areas, if desired For Each c In a.Cells 'Now each c refers to a cell in the area 'Do something here MsgBox c.Address & vbTab & c.Value Next c Next a
Si noti inoltre che se l’intervallo a cui si desidera accedere (contiguo o non contiguo) è stato denominato in Excel, è anche possibile accedere solo alle celle nell’intervallo denominato. Sostituisci semplicemente la parola “Selezione” in ciascuno di questi esempi con il nome dell’intervallo, in questo modo:
Dim c As Range For Each c In Range("MyNamedRange") ' do something here MsgBox c.Address & vbTab & c.Value Next c
_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 (8703) si applica a Microsoft Excel 2007, 2010, 2013, 2016, 2019 ed Excel in Office 365. Puoi trovare una versione di questo suggerimento per l’interfaccia di menu precedente di Excel qui: