Sommario
Per ordinare in Excel con VBA è necessario applicare il metodo Gamma.Ordinamento In questo articolo, vi mostreremo come ordinare la colonna in Excel con l'opzione Gamma.Ordina metodo di VBA .
Scarica il libro di lavoro
È possibile scaricare la cartella di lavoro Excel gratuita da qui.
Ordinamento di colonne con VBA.xlsm
Metodo Range.Sort in Excel VBA
Gamma.Ordina metodo in VBA ordina un intervallo di valori in Excel. Qui Gamma è una variabile oggetto che specifica l'intervallo di celle che si vuole ordinare in ordine crescente o decrescente.
Di seguito sono riportati i parametri da conoscere quando si lavora con questo metodo.
Parametro | Richiesto/ Facoltativo | Tipo di dati | Descrizione |
---|---|---|---|
Chiave | Opzionale | Variante | Specifica l'intervallo o la colonna i cui valori devono essere ordinati. |
Ordine | Opzionale | XlSortOrder | Specifica l'ordine in cui verrà eseguito l'ordinamento.
|
Intestazione | Opzionale | XlYesNoGuess | Specifica se la prima riga contiene o meno intestazioni.
|
4 metodi per implementare VBA per ordinare le colonne in Excel
In questa sezione, saprete come ordinare una singola colonna con e senza intestazione , colonne multiple con e senza intestazioni e come ordinare semplicemente facendo doppio clic sull'intestazione di una colonna in Excel.
1. Incorporare VBA per ordinare una singola colonna senza intestazione in Excel
Se si vuole ordinare una singola colonna nel foglio di lavoro di Excel con VBA seguire la procedura descritta di seguito.
Questa è la colonna che verrà ordinata con VBA codice.
Passi:
- Stampa Alt + F11 sulla tastiera o andare alla scheda Sviluppatore -> Visual Basic per aprire Editor Visual Basic .
- Nella finestra del codice a comparsa, dalla barra dei menu, fare clic su Inserire -> Modulo .
- Copiare il codice seguente e incollarlo nella finestra del codice.
Sub OrdinaSingolaColonnaSenzaIncapo() Range("B5:B15").Sort Key1:=Range("B5"), Order1:=xlAscending, Header:=xlNo End Sub
Il codice è ora pronto per essere eseguito.
Qui,
- Chiave1:=Ambito("B5") → Specificato B5 per far sapere al codice quale colonna ordinare.
- Ordine1:=xlAscendente → Specificato l'ordine come xlAscendente per ordinare la colonna in ordine crescente. Se si desidera ordinare la colonna in ordine decrescente, scrivere xlDiscendente invece.
- Intestazione:= xlNo → Poiché la nostra colonna non ha un'intestazione, l'abbiamo specificata con l'opzione xlNo opzione.
- Stampa F5 sulla tastiera o dalla barra dei menu selezionare Esegui -> Esegui Sub/UserForm È anche possibile fare clic sul pulsante piccola icona Play nella barra dei menu secondari per eseguire la macro.
Si noterà che la colonna è ora ordinati in ordine crescente .
Si noti che qui abbiamo definito manualmente l'intervallo di dati come Intervallo("B5:B15") .
Se si desidera modificare i dati aggiungendo o eliminando valori, è possibile implementare il seguente codice che si aggiorna automaticamente in base alle celle del dataset.
Sub OrdinaSingolaColonnaSenzaIncapo() Range("B5", Range("B5").End(xlDown)).Sort Key1:=Range("B5"), Order1:=xlAscending, Header:=xlNo End Sub
Si noti che invece di definire manualmente l'intervallo con Intervallo("B5:B15") , abbiamo scritto, Gamma( "B5", Range("B5"). End(xlDown)) .
La colonna viene ordinata in base all'ultima cella riempita consecutivamente. Se ci sono celle vuote, i dati vengono considerati solo fino alla prima cella vuota.
Per saperne di più: VBA per ordinare le tabelle in Excel (4 metodi)
2. Inserire una macro VBA per ordinare una singola colonna con intestazione
Nella sezione precedente, avevamo un set di dati con una singola colonna senza intestazione, ma ora abbiamo a con un'intestazione .
Questa volta impareremo come smistarlo con Macro VBA .
Passi:
- Allo stesso modo di prima, aprire Editor Visual Basic dal Sviluppatore e Inserire a Modulo nella finestra del codice.
- Nella finestra del codice, copiare il codice seguente e incollarlo.
Sub SortSingleColumnWithHeader() Range("B5:B16").Sort Key1:=Range("B5"), Order1:=xlDescending, Header:=xlYes End Sub
Il codice è ora pronto per essere eseguito.
Qui,
- Chiave1:=Ambito("B5") → Specificato B5 per far sapere al codice quale colonna ordinare.
- Ordine1:=xlDiscendente → Questa volta ordineremo la colonna in ordine decrescente, specificando quindi l'ordine come xlDiscendente .
- Intestazione:= xlYes → Poiché questa volta la nostra colonna ha un'intestazione, l'abbiamo specificata con l'opzione xlSì opzione.
- Correre questo codice e si otterrà il colonna con intestazione ordinata in modo decrescente .
Per saperne di più: Come ordinare ListBox con VBA in Excel (Guida completa)
Letture simili:
- Come ordinare gli indirizzi IP in Excel (6 metodi)
- [Ordinamento di Excel non funzionante (2 soluzioni)
- Come aggiungere un pulsante di ordinamento in Excel (7 metodi)
- Ordinamento dell'intervallo utilizzando VBA in Excel (6 esempi)
- Come ordinare per nome in Excel (3 esempi)
3. Macro VBA per ordinare più colonne con o senza intestazione
È inoltre possibile ordinare più colonne nel set di dati con il codice VBA.
Passi:
- Come mostrato in precedenza, l'apertura Editor Visual Basic dal Sviluppatore e Inserire a Modulo nella finestra del codice.
- Nella finestra del codice, copiare il codice seguente e incollarlo.
Sub SortMultipleColumnsWithHeaders() With ActiveSheet.Sort .SortFields.Add Key:=Range("B4"), Order:=xlAscending .SortFields.Add Key:=Range("C4"), Order:=xlAscending .SetRange Range("B4:D15") .Header = xlYes .Apply End With End Sub
Il codice è ora pronto per essere eseguito.
Qui,
.SortFields.Add Key:=Range("B4"), Order:=xlAscending
.SortFields.Add Key:=Range("C4"), Order:=xlAscending
Con queste due linee definiamo Cellula B4 e C4 per ordinare il due colonne ad esse associate in ordine ascendente .
Poiché abbiamo intestazioni nel nostro set di dati, abbiamo specificato Intestazione = xlYes altrimenti avremmo scritto Intestazione = xlNo all'interno del codice.
- Correre questo codice e si otterrà il colonne con intestazione ordinata in ordine crescente .
4. Macro per ordinare i dati facendo doppio clic sull'intestazione in Excel
Se si desidera ordinare i dati in modo semplice, solo con il metodo facendo doppio clic sull'intestazione è possibile farlo con VBA codice.
Passi:
- Cliccare con il tasto destro del mouse sul scheda foglio .
- Dall'elenco delle opzioni visualizzate, fare clic su Visualizza il codice .
- Apparirà la finestra del codice, copiate il codice seguente e incollatelo.
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) Dim iRange As Range Dim iCount As Integer iCount = Range("B4:D15").Columns.Count Cancel = False If Target.Row = 4 And Target.Column <= iCount Then Cancel = True Set iRange = Range(Target.Address) Range("B4:D15").Sort Key1:=iRange, Header:=xlYes End If End Sub
- Risparmiare il codice.
- Ora tornate al foglio di lavoro di vostro interesse e se fare doppio clic sulle intestazioni vedrete che le colonne si stanno riorganizzando.
Per saperne di più: Come ordinare e filtrare i dati in Excel (una guida completa)
Cose da ricordare
- È possibile creare un intervallo con nome e utilizzarlo quando si passa un intervallo di riferimenti di cella all'interno del metodo Ordinamento Per esempio, se si vuole ordinare l'intervallo A1:A10 , invece di passarlo ogni volta all'interno del codice, si può creare un intervallo di nomi, come " Ordinamento " e utilizzarlo con l'opzione Gamma.Ordina metodo come Intervallo("Ordinamento") .
- Se non si è sicuri che l'insieme di dati abbia o meno delle intestazioni, si può lasciare che sia il sistema a determinarlo, utilizzando l'opzione xlGuess parametro.
Conclusione
Questo articolo vi ha mostrato come ordinare la colonna in Excel VBA Spero che questo articolo vi sia stato di grande aiuto. Non esitate a chiedere se avete domande sull'argomento.