VBA per ordinare le tabelle in Excel (4 metodi)

  • Condividi Questo
Hugh West

Implementazione Macro VBA è il metodo più efficace, più rapido e più sicuro per eseguire qualsiasi operazione in Excel. In questo articolo vi mostreremo come ordinare la tabella in Excel con VBA .

Scarica il libro di lavoro

Potete scaricare la cartella di lavoro Excel gratuita da qui.

Ordinamento della tabella con VBA.xlsm

Cose da sapere prima di implementare VBA per ordinare le tabelle in Excel

Ci sono alcuni parametri che si devono usare frequentemente quando si lavora con il programma Ordinamento metodo di VBA Qui discuteremo alcuni parametri per familiarizzare con la scrittura del codice.

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 tabelle in Excel

Questa sezione mostra come ordinare le tabelle di Excel considerando valore, colori, icone e colonne multiple con VBA codice.

1. Incorporare VBA per ordinare una tabella per valore in Excel

Considerando il seguente esempio ordinare la tabella in base ai valori presente nel Marchio in ordine decrescente.

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 SortTableValue() Dim iSheet As Worksheet Dim iTable As ListObject Dim iColumn As Range Set iSheet = ActiveSheet Set iTable = iSheet.ListObjects("SortTBL") Set iColumn = Range("SortTBL[Marks]") With iTable.Sort .SortFields.Clear .SortFields.Add Key:=iColumn, SortOn:=xlSortOnValues, Order:=xlDescending .Header = xlYes .Apply End With End Sub 

Il codice è ora pronto per essere eseguito.

Qui,

  • OrdinaTBL → Specificato il nome della tabella.
  • OrdinaTBL[Marchi] -Specificato il nome della colonna della tabella da ordinare.
  • Chiave1:=iColonna → Specificare l'intervallo di colonne per consentire al codice di sapere quale colonna della tabella ordinare.
  • Ordine1:=xlDiscendente → Specificato l'ordine come xlDiscendente per ordinare la colonna in ordine decrescente. Se si desidera ordinare la colonna in ordine crescente, scrivere xlAscendente invece.
  • Intestazione:= xlYes → Poiché la colonna di questa tabella ha un'intestazione, l'abbiamo specificata con l'opzione xlSì opzione.

  • Stampa F5 sulla tastiera o dalla barra dei menu selezionare Esegui -> Esegui Sub/UserForm Si può anche fare clic sul pulsante piccola icona Play nella barra dei menu secondari per eseguire la macro.

Si noterà che la colonna nella tabella è ora ordinati in ordine decrescente .

Per saperne di più: Come ordinare i dati per valore in Excel (5 metodi semplici)

2. Inserire la macro VBA per ordinare la tabella per più colonne

È inoltre possibile ordinare una tabella per più colonne in Excel con VBA macro.

Dalla tabella precedente, ordineremo le colonne Nome e Dipartimento in ordine crescente.

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 SortTable() Dim iSheet As Worksheet Dim iTable As ListObject Dim iColumn As Range Set iSheet = ActiveSheet Set iTable = iSheet.ListObjects("TableValue") Set iColumn1 = Range("TableValue[Name]") Set iColumn2 = Range("TableValue[Department]") With iTable.Sort .SortFields.Clear .SortFields.Add Key:=iColumn1, Order:=xlAscending .SortFields.Add Key:=iColumn2, Order:=xlAscending.Header = xlYes .Apply End With End Sub 

Il codice è ora pronto per essere eseguito.

Qui,

  • Valore della tabella → Specificato il nome della tabella.
  • TableValue[Name] -Specificato il nome della prima colonna della tabella da ordinare.
  • TableValue[Department] -Specificato il nome della seconda colonna della tabella da ordinare.
  • Chiave1:=iColonna1 → Specificare l'intervallo di colonne per indicare al codice la prima colonna della tabella da ordinare.
  • Chiave1:=iColonna2 → Specificare l'intervallo di colonne per far sapere al codice che la seconda colonna della tabella deve essere ordinata.
  • Ordine1:=xlAscendente → Specificato l'ordine come xlAscendente per ordinare la colonna in ordine decrescente. Se si desidera ordinare la colonna in ordine decrescente, scrivere xlDiscendente invece.
  • Intestazione:= xlYes → Poiché le colonne di questa tabella hanno delle intestazioni, le abbiamo specificate con l'opzione xlSì opzione.

  • Correre questo codice e si otterranno entrambi i colonne della tabella ordinate in ordine crescente.

Per saperne di più: Come ordinare automaticamente più colonne in Excel (3 modi)

Letture simili

  • Come ordinare un elenco unico in Excel (10 metodi utili)
  • Ordinamento di una matrice con Excel VBA (ordine ascendente e discendente)
  • Come ordinare e filtrare i dati in Excel (una guida completa)
  • Ordinamento automatico di Excel quando i dati cambiano (9 esempi)
  • Ordinamento casuale in Excel (formule + VBA)

3. Implementare la macro per ordinare la tabella in base al colore delle celle in Excel

È inoltre possibile ordinare una tabella in base al colore della cella che contiene.

Con la tabella precedente come esempio, vi mostreremo come ordinarla in base ai colori che contiene.

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 SortTableColor() Dim iSheet As Worksheet Dim iTable As ListObject Dim iColumn As Range Set iSheet = ActiveSheet Set iTable = iSheet.ListObjects("SortTable") Set iColumn = Range("SortTable[Marks]") With iTable.Sort .SortFields.Clear .SortFields.Add(Key:=iColumn, Order:=xlAscending, SortOn:=xlSortOnCellColor).SortOnValue.Color = RGB(248, 203, 173) .SortFields.Add(Key:=iColumn,Order:=xlAscending, SortOn:=xlSortOnCellColor).SortOnValue.Color = RGB(255, 217, 102) .SortFields.Add(Key:=iColumn, Order:=xlAscending, SortOn:=xlSortOnCellColor).SortOnValue.Color = RGB(198, 224, 180) .SortFields.Add(Key:=iColumn, Order:=xlAscending, SortOn:=xlSortOnCellColor).SortOnValue.Color = RGB(180, 198, 231) .Header = xlYes .Apply End With End Sub 

Il codice è ora pronto per essere eseguito.

Qui il RGB che vi abbiamo fornito, potete trovarlo o qualsiasi altro codice di RGB Il codice che si desidera seguire è quello riportato di seguito.

  • Basta fare clic sul pulsante cella colorata .
  • Nel Casa fare clic sulla scheda freccia accanto a Colore di riempimento quindi selezionare Altri colori Vedrete il RGB codici nel Personalizzato della scheda apparsa Colori casella a comparsa.

  • Correre questo codice e la vostra tabella sarà ordinati in base ai colori .

Per saperne di più: Come ordinare per colore in Excel (4 criteri)

4. Applicare VBA per ordinare la tabella di Excel per icona

Supponiamo che la tabella del set di dati abbia delle icone per una migliore leggibilità. È possibile ordinare i dati in tabella basata sulle icone in Excel con VBA macro.

Guardate il set di dati qui sopra. Qui la tabella ha delle icone accanto ai valori numerici nel campo Marchi in modo da poter capire quale studente ha ottenuto risultati buoni, cattivi o medi.

Se non sapete come inserire un'icona all'interno di una cella, potete farlo semplicemente con il comando Formattazione condizionale di Excel.

  • Selezionare l'intero intervallo o colonna.
  • Vai a Formattazione condizionale -> Set di icone Quindi scegliere i set di icone desiderati dall'opzione.

Passi per ordinare una tabella in base alle icone sono riportati di seguito.

Passi:

  • Aperto Editor Visual Basic dal Sviluppatore e Inserire a Modulo nella finestra del codice.
  • Nella finestra del codice, copiare il codice seguente e incollarlo.
 Sub SortTableIcon() Dim iSheet As Worksheet Dim iTable As ListObject Dim iColumn As Range Set iSheet = ActiveSheet Set iTable = iSheet.ListObjects("IconTable") Set iColumn = Range("IconTable[Marks]") With iTable.Sort .SortFields.Clear .SortFields.Add(Key:=iColumn, Order:=xlDescending, SortOn:=xlSortOnIcon).SetIcon Icon:=ActiveWorkbook.IconSets(xl5Arrows).Item(1) .SortFields.Add(Key:=iColumn,Order:=xlDescending, SortOn:=xlSortOnIcon).SetIcon Icon:=ActiveWorkbook.IconSets(xl5Arrows).Item(2) .SortFields.Add(Key:=iColumn, Order:=xlDescending, SortOn:=xlSortOnIcon).SetIcon Icon:=ActiveWorkbook.IconSets(xl5Arrows).Item(3) .SortFields.Add(Key:=iColumn, Order:=xlDescending, SortOn:=xlSortOnIcon).SetIcon Icon:=ActiveWorkbook.IconSets(xl5Arrows).Item(4) .SortFields.Add(Key:=iColumn,Order:=xlDescending, SortOn:=xlSortOnIcon).SetIcon Icon:=ActiveWorkbook.IconSets(xl5Arrows).Item(5) .Header = xlYes .Apply End With End Sub 

Il codice è ora pronto per essere eseguito.

Qui,

  • xl5Frecce -Abbiamo scelto il set di 5 frecce dall'opzione nella finestra Formattazione condizionale .
  • Articolo (1) -Specificato il prima tipo di icona a forma di freccia.
  • Articolo (2) -Specificato il secondo tipo di icona a forma di freccia.
  • Articolo (3) -Specificato il terzo tipo di icona a forma di freccia.
  • Articolo (4) -Specificato il quarto tipo di icona a forma di freccia.
  • Articolo (5) -Specificato il quinto tipo di icona a forma di freccia.

  • Correre questo codice e la tabella sarà ordinati in base alle icone .

Per saperne di più: Come ordinare automaticamente una tabella in Excel (5 metodi)

Conclusione

Questo articolo vi ha mostrato come ordinare la tabella 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.