Intervallo di ordinamento VBA

Intervallo di ordinamento VBA di Excel

L'ordinamento di un intervallo in VBA viene eseguito dal metodo range.sort, è una proprietà del metodo intervallo con cui un utente può ordinare un intervallo in ordine, gli argomenti per questa funzione sono Key1, Order1, Key2, Type, Order2, Key3 , Order3, Header, OrderCustom, MatchCase, Orientation, SortMethod, DataOption1, DataOption2, DataOption3, tutti gli argomenti per questa funzione sono opzionali.

Come parte dell'organizzazione o della strutturazione dei dati, è importante ordinare i dati e organizzarli. Una cosa simile è disponibile anche con VBA, quindi la domanda comune sui nuovi studenti di VBA è come possiamo utilizzare questa opzione di ordinamento come parte dell'automazione VBA e questo articolo ti guida attraverso la gamma di ordinamento VBA in dettaglio.

Con Excel abbiamo tutti familiarità con l'opzione dell'ordinamento disponibile nella scheda DATI.

Opzione di ordinamento in VBA

Per utilizzare l'opzione di ordinamento, prima dobbiamo decidere qual è il nostro intervallo di dati e menzionare lo stesso intervallo di dati utilizzando l'oggetto RANGE in VBA, quindi solo noi possiamo accedere all'opzione "Ordina" in VBA. Ad esempio, supponiamo che il mio intervallo di dati sia da A1 a D10, quindi possiamo fornire l'intervallo di dati come segue.

Codice:

 Sub Sort_Range_Example () Range ("A1: D10") End Sub 

Ora metti un punto e seleziona il metodo "SORT".

Codice:

 Sub Sort_Range_Example () Intervallo ("A1: D10"). Ordina End Sub 

Di seguito è riportata la sintassi del metodo di intervallo SORT, sebbene la sintassi abbia argomenti diversi, non abbiamo bisogno di tutti per la nostra codifica VBA, quindi abbiamo bisogno solo di pochi elementi.

[Chiave1]: Nell'intervallo di dati che stiamo ordinando dobbiamo specificare quale colonna dobbiamo ordinare. Ad esempio, nell'intervallo di dati di A1: D10, se si desidera ordinare i dati in base alla colonna B, [Chiave1] sarà Intervallo ("B1") .

[Order1]: la colonna menzionata nell'argomento [Key1] dovrebbe essere ordinata in quale ordine. Possiamo scegliere due opzioni qui "xlAscending" o "xlDescending".

Intestazione: l'intervallo di dati menzionato ha o meno intestazioni, in caso affermativo possiamo fornire "xlYes" oppure possiamo fornire "xlNo".

Esempio di intervallo di ordinamento in VBA

Prendiamo l'esempio dell'intervallo di ordinamento VBA di Excel per capirlo in modo migliore.

Puoi scaricare questo modello Excel intervallo di ordinamento VBA qui - Modello Excel intervallo di ordinamento VBA

Ad esempio, guarda la struttura dei dati di seguito.

Abbiamo dati da A1 a E17, quindi per prima cosa ordineremo i dati in base al "Paese". Seguire i passaggi seguenti per scrivere il codice per ordinare i dati.

Passaggio 1: avvia la procedura macro di Excel.

Codice:

 Sub Sort_Range_Example () End Sub 

Passaggio 2: prima menzionare l'intervallo di dati utilizzando l' oggetto RANGE .

Codice:

 Sub Sort_Range_Example () Range ("A1: E17") End Sub 

Passaggio 3: ora scegli il metodo " Ordina " dell'oggetto Range.

Codice:

 Sub Sort_Range_Example () Intervallo ("A1: E17"). Ordina End Sub 

Passaggio 4: poiché stiamo ordinando i dati in base a "Paese", la colonna dell'argomento Chiave 1 sarà Intervallo ("B1").

Codice:

 Sub Sort_Range_Example () Range ("A1: E17"). Sort Key1: = Range ("B1"), End Sub 

Passaggio 5: una volta menzionata la colonna richiesta, è necessario indicare in quale ordine è necessario ordinare i dati e "Order1" sarà "xlAscending" .

Codice:

 Sub Sort_Range_Example () Range ("A1: E17"). Sort Key1: = Range ("B1"), Order1: = xlAscending, End Sub 

Passaggio 6: i nostri dati hanno intestazioni, quindi l'intestazione sarà "xlYes".

Codice:

 Sub Sort_Range_Example () Range ("A1: E17"). Sort Key1: = Range ("B1"), Order1: = xlAscending, Header: = xlYes End Sub 

Abbiamo menzionato tutti gli elementi necessari per ordinare i dati. Eseguire il codice premendo la funzione e il tasto F5 e vedere il risultato.

Produzione:

I dati sono stati ordinati in base ai nomi dei paesi nell'ordine dalla A alla Z.

Ora supponiamo di dover ordinare i dati in base al Paese, inoltre dobbiamo ordinare le " Vendite lorde " dal più alto al più basso. In questi casi, dobbiamo utilizzare anche gli argomenti Key2 e Order2.

Dopo aver menzionato Key1 e Order1, scegliamo Key2.

Codice:

 Sub Sort_Range_Example () Range ("A1: E17"). Sort Key1: = Range ("B1"), Order1: = xlAscending, Key2: = End Sub 

Poiché stiamo ordinando i dati in base alla colonna " Gross Sales ", il nome della nostra colonna Key2 sarà Range ("D1").

Codice:

 Sub Sort_Range_Example () Range ("A1: E17"). Sort Key1: = Range ("B1"), Order1: = xlAscending, Key2: = Range ("D1"), End Sub 

Once the Key2 is specified we need to decide on the sorting patter of whether it is ascending order or descending order in Order2 argument since we are sorting the sales value from largest to smallest we can choose “xlDescending” order.

Code:

 Sub Sort_Range_Example() Range("A1:E17").Sort Key1:=Range("B1"), Order1:=xlAscending, Key2:=Range("D1"), Order2:=xlDescending, Header:=xlYes End Sub 

After that mention the Header argument as “xlYes”. Now run the code and see what happens.

Output:

Previously it has sorted based only on “Country-wise” but this time it has sorted based on “Country-wise” first and then also on “Gross Sales” from highest to lowest.

Like this, we can use the “Sort” method in VBA to organize the data.

Things to Remember about Excel VBA Sort Range

  • The sort is a method available in VBA and to access this method we need to specify what the range of cells we are going to sort.
  • If the data range includes headers then we need to choose the header option as “xlYes”, if not we can choose “xlNo”.