VBA pentru a sorta tabelul în Excel (4 metode)

  • Imparte Asta
Hugh West

Implementarea Macro VBA este cea mai eficientă, mai rapidă și mai sigură metodă de a executa orice operațiune în Excel. În acest articol, vă vom arăta cum să sortați tabelul în Excel cu VBA .

Descărcați caietul de lucru

Puteți descărca gratuit caietul de lucru Excel de practică de aici.

Sortare tabel cu VBA.xlsm

Lucruri de știut înainte de a implementa VBA pentru a sorta tabelul în Excel

Există anumiți parametri pe care trebuie să îi folosiți frecvent în timp ce lucrați cu Sortare metoda de VBA Așa că aici vom discuta unii dintre parametri pentru a vă familiariza în timp ce scrieți codul.

Parametru Necesar/ Opțional Tip de date Descriere
Cheie Opțional Varianta Specifică intervalul sau coloana ale cărei valori urmează să fie sortate.
Comandă Opțional XlSortOrder Specifică ordinea în care se va efectua sortarea.
  • xlAscending = Pentru a sorta în ordine crescătoare.
  • xlDescendentă = Pentru a sorta în ordine descrescătoare.
Antet Opțional XlYesNoGuess Specifică dacă primul rând conține sau nu anteturi.
  • xlNo = Atunci când coloana nu are niciun antet; Valoare implicită.
  • xlYes = Atunci când coloanele au anteturi.
  • xlGuess = Pentru a lăsa Excel să determine anteturile.

4 Metode în implementarea VBA pentru a sorta tabelul în Excel

Această secțiune vă va arăta cum să sortarea tabelelor Excel luând în considerare valoare, culori, pictograme și coloane multiple cu VBA cod.

1. Încorporați VBA pentru a sorta tabelul după valoare în Excel

Având în vedere următorul exemplu, vom sortați acest tabel după valori prezente în Mark în ordine descrescătoare.

Pași:

  • Presa Alt + F11 de pe tastatură sau mergeți la fila Dezvoltator -> Visual Basic pentru a deschide Editor Visual Basic .

  • În fereastra de cod pop-up, din bara de meniu, faceți clic pe Inserare -> Modul .

  • Copiați următorul cod și lipiți-l în fereastra de cod.
 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 With End Sub 

Codul dumneavoastră este acum gata de a fi executat.

Aici,

  • SortTBL → Ați specificat numele tabelului.
  • SortTBL[Marks] -> A specificat numele coloanei tabelului de sortat.
  • Key1:=iColumna → Ați specificat intervalul de coloane pentru a permite codului să știe ce coloană din tabel trebuie sortată.
  • Order1:=xlDescending → A specificat comanda ca fiind xlDescendentă pentru a sorta coloana în ordine descrescătoare. Dacă doriți să sortați coloana în ordine crescătoare, atunci scrieți xlAscending în schimb.
  • Header:= xlYes → Deoarece coloana din acest tabel are un antet, am specificat-o cu xlYes opțiune.

  • Presa F5 de pe tastatură sau, din bara de meniu, selectați Run -> Run Sub/UserForm Puteți, de asemenea, să faceți clic pe pictograma mică de redare din bara de submeni pentru a rula macrocomenzul.

Veți vedea că coloana din tabelul dumneavoastră este acum sortate în ordine descrescătoare .

Citiți mai mult: Cum să sortați datele în funcție de valoare în Excel (5 metode ușoare)

2. Introduceți macro VBA pentru a sorta tabelul pentru mai multe coloane

De asemenea, puteți sortarea unui tabel pentru mai multe coloane în Excel cu VBA macro.

Din tabelul de mai sus, vom sorta coloanele Nume și Departamentul în ordine crescătoare.

Pași:

  • În același mod ca și înainte, deschideți Editor Visual Basic de la Dezvoltator fila și Introduceți a Modul în fereastra de cod.
  • În fereastra de cod, copiați următorul cod și lipiți-l.
 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 

Codul dumneavoastră este acum gata de a fi executat.

Aici,

  • TableValue → Ați specificat numele tabelului.
  • TableValue[Name] -> A specificat numele primei coloane a tabelului de sortat.
  • TableValue[Departament] -> Specificat al doilea nume de coloană al tabelului de sortat.
  • Key1:=iColumn1 → Ați specificat intervalul de coloane pentru a permite codului să știe că prima coloană din tabel trebuie să fie sortată.
  • Cheie1:=iColumna2 → Ați specificat intervalul de coloane pentru a permite codului să știe că a doua coloană din tabel trebuie să fie sortată.
  • Order1:=xlAscending → A specificat comanda ca fiind xlAscending pentru a sorta coloana în ordine descrescătoare. Dacă doriți să sortați coloana în ordine descrescătoare, atunci scrieți xlDescendentă în schimb.
  • Header:= xlYes → Deoarece coloanele acestui tabel au anteturi, le-am specificat cu xlYes opțiune.

  • Rulați acest cod și veți obține ambele coloanele din tabel sortate în ordine crescătoare.

Citește mai mult: Cum să sortați automat mai multe coloane în Excel (3 moduri)

Lecturi similare

  • Cum să sortați lista unică în Excel (10 metode utile)
  • Sortarea matricei cu Excel VBA (atât în ordine crescătoare, cât și descrescătoare)
  • Cum să sortați și să filtrați datele în Excel (un ghid complet)
  • Sortare automată Excel atunci când datele se modifică (9 exemple)
  • Sortare aleatorie în Excel (Formule + VBA)

3. Implementați Macro pentru a sorta tabelul după culoarea celulei în Excel

De asemenea, puteți sortează un tabel în funcție de culoarea celulei pe care îl conține.

Având ca exemplu tabelul de mai sus, vă vom arăta cum să îl sortați pe baza culorilor pe care le conține acest tabel.

Pași:

  • După cum s-a arătat anterior, open Editor Visual Basic de la Dezvoltator fila și Introduceți a Modul în fereastra de cod.
  • În fereastra de cod, copiați următorul cod și lipiți-l.
 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 

Codul dumneavoastră este acum gata de a fi executat.

Aici se află RGB coduri pe care le-am furnizat, îl puteți găsi sau orice alt RGB codul pe care îl doriți, urmând instrucțiunile de mai jos.

  • Trebuie doar să faceți clic pe celulă colorată .
  • În Acasă fila, faceți clic pe butonul săgeată lângă Culoare de umplere apoi selectați Mai multe culori . veți vedea RGB codurile din Personalizat din tab-ul apărut Culori caseta pop-up.

  • Rulați acest cod și tabelul dvs. va fi sortate în funcție de culori .

Citește mai mult: Cum să sortați după culoare în Excel (4 criterii)

4. Aplicați VBA pentru a sorta tabelul Excel după pictogramă

Să presupunem că tabelul din setul de date are pictograme pentru o mai bună lizibilitate. Puteți sorta tabelul tabel pe baza pictogramelor în Excel cu VBA macro.

Priviți setul de date de mai sus. Aici, tabelul are pictograme lângă valorile numerice din Marks coloane, astfel încât să putem înțelege care elev are rezultate bune, proaste sau medii.

Rețineți că, dacă nu știți cum puteți insera o pictogramă în interiorul unei celule, puteți face acest lucru pur și simplu cu ajutorul funcției Formatarea condiționată din Excel.

  • Selectați întregul interval sau întreaga coloană.
  • Mergeți la Formatare condiționată -> Seturi de pictograme Apoi, alegeți orice set de pictograme doriți din această opțiune.

Pași către sortează un tabel pe baza pictogramelor sunt prezentate mai jos.

Pași:

  • Deschideți Editor Visual Basic de la Dezvoltator fila și Introduceți a Modul în fereastra de cod.
  • În fereastra de cod, copiați următorul cod și lipiți-l.
 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 

Codul dumneavoastră este acum gata de a fi executat.

Aici,

  • xl5Arrowws -> Am ales set de 5 săgeți din opțiunea din Formatarea condiționată .
  • Articol (1) -> A specificat prima tipul de pictogramă săgeată.
  • Articol (2) -> A specificat al doilea tipul de pictogramă săgeată.
  • Articol (3) -> A specificat al treilea tipul de pictogramă săgeată.
  • Articol (4) -> A specificat al patrulea tipul de pictogramă săgeată.
  • Articol (5) -> A specificat al cincilea tipul de pictogramă săgeată.

  • Rulați acest cod și tabelul va fi sortate în funcție de pictograme .

Citiți mai mult: Cum să sortați automat tabelul în Excel (5 metode)

Concluzie

Acest articol v-a arătat cum să sortați tabelul în Excel VBA . sper că acest articol a fost foarte benefic pentru dvs. Nu ezitați să mă întrebați dacă aveți întrebări legate de acest subiect.

Hugh West este un trainer și analist Excel cu o experiență de peste 10 ani în industrie. Deține o diplomă de licență în contabilitate și finanțe și un master în administrarea afacerilor. Hugh are o pasiune pentru predare și a dezvoltat o abordare unică de predare care este ușor de urmărit și de înțeles. Cunoștințele sale experte despre Excel au ajutat mii de studenți și profesioniști din întreaga lume să-și îmbunătățească abilitățile și să exceleze în cariera lor. Prin blogul său, Hugh își împărtășește cunoștințele lumii, oferind tutoriale gratuite Excel și instruire online pentru a ajuta persoanele și companiile să-și atingă întregul potențial.