VBA per ordinare le colonne in Excel (4 metodi)

  • Condividi Questo
Hugh West

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.
  • xlAscendente = Per ordinare in ordine crescente.
  • xlDiscendente = Per ordinare in ordine decrescente.
Intestazione Opzionale XlYesNoGuess Specifica se la prima riga contiene o meno intestazioni.
  • xlNo = Quando la colonna non ha intestazioni; Valore predefinito.
  • xlSì = Quando le colonne hanno intestazioni.
  • xlGuess = Per consentire a Excel di determinare le 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.

Hugh West è un istruttore e analista di Excel di grande esperienza con oltre 10 anni di esperienza nel settore. Ha conseguito una laurea in Contabilità e Finanza e un Master in Economia Aziendale. Hugh ha una passione per l'insegnamento e ha sviluppato un approccio didattico unico che è facile da seguire e capire. La sua conoscenza approfondita di Excel ha aiutato migliaia di studenti e professionisti in tutto il mondo a migliorare le proprie competenze ed eccellere nella propria carriera. Attraverso il suo blog, Hugh condivide le sue conoscenze con il mondo, offrendo esercitazioni gratuite su Excel e formazione online per aiutare le persone e le aziende a raggiungere il loro pieno potenziale.