Vba: come ordinare un foglio per più colonne
È possibile utilizzare la seguente sintassi di base per ordinare un foglio Excel in più colonne utilizzando VBA:
Sub SortMultipleColumns()
Range(" A1:B11 ").Sort Key1:=Range(" A1 "), Order1:=xlAscending, _
Key2:=Range(" B1 "), Order2:=xlDescending, _
Header:=xlYes
End Sub
Questo particolare esempio ordina le celle nell’intervallo A1:B11 prima in base ai valori nella colonna A in ordine crescente, quindi in base ai valori nella colonna B in ordine decrescente.
Tieni presente che Header:=xlYes specifica che la prima riga deve essere trattata come una riga di intestazione.
L’esempio seguente mostra come utilizzare questa sintassi nella pratica.
Esempio: ordinare un foglio Excel per più colonne utilizzando VBA
Supponiamo di avere il seguente set di dati in Excel che contiene informazioni su vari giocatori di basket:
Supponiamo di voler ordinare il dataset nel seguente modo:
- Innanzitutto, ordina in base ai valori nella colonna Squadra in ordine crescente (dalla A alla Z).
- Successivamente, ordina in base ai valori nella colonna Punti in ordine decrescente (dal più grande al più piccolo).
Per fare ciò possiamo creare la seguente macro:
Sub SortMultipleColumns()
Range(" A1:B11 ").Sort Key1:=Range(" A1 "), Order1:=xlAscending, _
Key2:=Range(" B1 "), Order2:=xlDescending, _
Header:=xlYes
End Sub
Quando eseguiamo questa macro, riceviamo il seguente output:
Le righe ora sono ordinate per nome della squadra in ordine crescente e per punti in ordine decrescente.
Nota n. 1 : in questo esempio, abbiamo ordinato su due colonne. Tuttavia, puoi specificare tutte le chiavi che desideri per ordinare ancora più colonne.
Nota n.2 : puoi trovare la documentazione completa del metodo di ordinamento VBA qui .
Risorse addizionali
I seguenti tutorial spiegano come eseguire altre attività comuni in VBA:
VBA: come scrivere le funzioni MEDIA.SE e MEDIA.SE
VBA: come scrivere le funzioni SOMMA.SE e SOMMA.FS
VBA: come scrivere le funzioni COUNTIF e COUNTIFS