Come ordinare l'intervallo in vba?
Per ordinare un intervallo di celle utilizzando VBA, è necessario utilizzare il metodo “ORDINA” che consente di impostare una singola chiave (colonna) o più chiavi (per più colonne) per l’ordinamento. Puoi anche impostare l’ordine (ascendente o discendente) che desideri ordinare e puoi specificare se hai un’intestazione o meno.
Ordina un intervallo con VBA
- Utilizza l’oggetto intervallo per specificare l’intervallo che desideri ordinare.
- Digitare un punto e immettere il metodo di ordinamento.
- Specifica la chiave che desideri utilizzare per l’ordinamento.
- Imposta l’ordinamento.
- Indica se hai un’intestazione o meno.
Range("A1:A11").Sort Key1:=Range("A1"), _ Order1:=xlAscending, _ Header:=xlYes
Nel codice sopra hai utilizzato l’intervallo A1: A11 e nel metodo di ordinamento hai utilizzato l’ordine crescente, hai menzionato che hai un’intestazione nell’intervallo.
Comprensione del metodo di ordinamento di VBA
Prima di scrivere una macro per ordinare un intervallo, è meglio approfondire il metodo di ordinamento e comprenderne gli argomenti.
Sort (Key1, Order1, Key2, Type, Order2, Key3, Order3, _ Header, OrderCustom, MatchCase, Orientation, SortMethod, _ DataOption1, DataOption2, DataOption3)
Ecco gli argomenti più importanti che utilizzerai nella vita reale.
- Chiave : qui è necessario definire una cella di cui si desidera utilizzare la colonna come base di ordinamento.
- Ordine : ordine in cui si desidera ordinare la colonna (ascendente/discendente).
- Intestazione : una costante per specificare se si dispone o meno di un’intestazione o se si desidera che VBA indovini.
Ordina in ordine decrescente
Nel codice seguente, ho utilizzato “xlDescending” per ordinare la colonna dell’importo in ordine decrescente.
Range("A1:A13").Sort Key1:=Range("A1"), _ Order1:=xlDescending, _ Orientation:=xlSortColumns
Utilizzo di più colonne (chiavi) per l’ordinamento
Puoi anche utilizzare più colonne per ordinare un intervallo. Prendiamo un esempio dalla tabella seguente in cui sono presenti più voci con nomi di dipendenti e città e devi ordinare utilizzando nome e città.
Ecco il codice che devi utilizzare:
Range("A1:C13").Sort Key1:=Range("A1"), _ Order1:=xlAscending, _ Key2:=Range("B1"), _ Order1:=xlAscending, _ Header:=xlYes
Come puoi vedere nel codice hai key1 e key2. Nella chiave 1 hai la colonna con il nome del dipendente e nella chiave 2 hai la colonna della città. Per entrambe le colonne, l’ordinamento è crescente e le intestazioni sono presenti.
Nota: puoi utilizzarla come qualsiasi colonna che desideri utilizzare come base per l’ordinamento utilizzando chiavi e ordine.
Cambiare l’orientamento del destino
Quando normalmente ordini i dati in Excel, per impostazione predefinita puoi ordinarli utilizzando le colonne. Ma dalle opzioni di ordinamento, puoi modificare l’orientamento dell’ordinamento da sinistra a destra anziché dall’alto verso il basso.
Allo stesso modo, hai un argomento nel metodo sort per cambiare l’orientamento ( link ).
Range("A1:C13").Sort Key1:=Range("A1"), _ Order1:=xlAscending, _ Orientation:=xlSortRows