VBA om tabel in Excel te sorteren (4 methoden)

  • Deel Dit
Hugh West

Toepassing van VBA-macro is de meest effectieve, snelste en veiligste methode om elke bewerking in Excel uit te voeren. In dit artikel laten we u zien hoe u de tabel sorteren in Excel met VBA .

Werkboek downloaden

U kunt de gratis oefen Excel-werkmap hier downloaden.

Tabel sorteren met VBA.xlsm

Dingen die u moet weten voordat u VBA toepast om tabellen in Excel te sorteren

Er zijn enkele parameters die u vaak moet gebruiken tijdens het werken met de Sorteer methode van VBA Hier bespreken we enkele parameters om u vertrouwd te maken met het schrijven van de code.

Parameter Vereist/ Facultatief Gegevenstype Beschrijving
Sleutel Optioneel Variant Specificeert het bereik of de kolom waarvan de waarden moeten worden gesorteerd.
Bestel Optioneel XlSortOrder Specificeert de volgorde waarin wordt gesorteerd.
  • xlAscending = Om in oplopende volgorde te sorteren.
  • xlAflopende = Om in aflopende volgorde te sorteren.
Kop Optioneel XlYesNoGuess Geeft aan of de eerste rij koppen bevat of niet.
  • xlGeen = Wanneer de kolom geen koppen heeft; Standaardwaarde.
  • xlJa = Wanneer de kolommen koppen hebben.
  • xlGuess = Excel de koppen laten bepalen.

4 methoden om VBA te implementeren voor het sorteren van tabellen in Excel

Dit deel laat zien hoe u Excel-tabellen sorteren door rekening te houden met waarde, kleuren, pictogrammen en meerdere kolommen met VBA code.

1. VBA inbouwen om tabel op waarde te sorteren in Excel

Gezien het volgende voorbeeld zullen wij deze tabel sorteren op de waarden aanwezig in de Mark kolom in aflopende volgorde.

Stappen:

  • Druk op Alt + F11 op uw toetsenbord of ga naar de tab Ontwikkelaar -> Visual Basic om te openen Visual Basic-editor .

  • In het pop-up codevenster, klik in de menubalk op Invoegen -> Module .

  • Kopieer de volgende code en plak die in het codevenster.
 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 

Uw code is nu klaar om te draaien.

Hier,

  • SortTBL → De tabelnaam opgegeven.
  • SortTBL[Marks] -> Specificeerde de kolomnaam van de tabel om te sorteren.
  • Sleutel1:=iKolom → Specificeer het kolombereik om de code te laten weten welke kolom in de tabel moet worden gesorteerd.
  • Order1:=xlDescending → Specificeerde de volgorde als xlAflopende om de kolom aflopend te sorteren. Als je de kolom oplopend wilt sorteren, schrijf dan xlAscending in plaats daarvan.
  • Koptekst:= xlJa → Omdat de kolom in deze tabel een kop heeft, hebben we deze gespecificeerd met de xlJa optie.

  • Druk op F5 op uw toetsenbord of selecteer in de menubalk Run -> Run Sub/UserForm U kunt ook gewoon op de klein pictogram Play in de submenubalk om de macro uit te voeren.

U zult zien dat de kolom in uw tabel nu gesorteerd in aflopende volgorde .

Lees meer: Gegevens sorteren op waarde in Excel (5 eenvoudige methodes)

2. VBA-macro invoegen om tabel te sorteren voor meerdere kolommen

U kunt ook een tabel sorteren voor meerdere kolommen in Excel met VBA macro.

Uit de bovenstaande tabel sorteren we de kolommen Naam en Afdeling in oplopende volgorde.

Stappen:

  • Dezelfde manier als voorheen, open Visual Basic-editor van de Ontwikkelaar tab en Plaats a Module in het codevenster.
  • Kopieer in het codevenster de volgende code en plak deze.
 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 

Uw code is nu klaar om te draaien.

Hier,

  • TableValue → De tabelnaam opgegeven.
  • TableValue[Name] -> Specificeerde de eerste kolomnaam van de tabel om te sorteren.
  • TableValue[Department] -> Specificeerde de tweede kolomnaam van de tabel om te sorteren.
  • Sleutel1:=iKolom1 → Specificeer het kolombereik om de code te laten weten dat de eerste kolom in de tabel moet worden gesorteerd.
  • Sleutel1:=iKolom2 → Specificeer het kolombereik om de code te laten weten dat de tweede kolom in de tabel moet worden gesorteerd.
  • Order1:=xlAscending → Specificeerde de volgorde als xlAscending om de kolom in aflopende volgorde te sorteren. Als u de kolom in aflopende volgorde wilt sorteren, schrijf dan xlAflopende in plaats daarvan.
  • Koptekst:= xlJa → Omdat de kolommen van deze tabel koppen hebben, hebben we ze gespecificeerd met de xlJa optie.

  • Ren deze code en je krijgt beide kolommen van de tabel gesorteerd in oplopende volgorde.

Lees meer: Meerdere kolommen automatisch sorteren in Excel (3 manieren)

Vergelijkbare lezingen

  • Hoe unieke lijst sorteren in Excel (10 nuttige methoden)
  • Array sorteren met Excel VBA (zowel oplopend als aflopend)
  • Gegevens sorteren en filteren in Excel (een complete handleiding)
  • Excel automatisch sorteren wanneer gegevens veranderen (9 voorbeelden)
  • Willekeurig sorteren in Excel (formules + VBA)

3. Macro uitvoeren om tabel te sorteren op celkleur in Excel

U kunt ook een tabel sorteren op basis van de celkleur dat het bevat.

Met de bovenstaande tabel als voorbeeld zullen we u laten zien hoe u kunt sorteren op basis van de kleuren die deze tabel bevat.

Stappen:

  • Zoals eerder aangetoond, is open Visual Basic-editor van de Ontwikkelaar tab en Plaats a Module in het codevenster.
  • Kopieer in het codevenster de volgende code en plak deze.
 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 

Uw code is nu klaar om te draaien.

Hier de RGB codes die we hebben verstrekt, kunt u het vinden of een andere RGB code die u wilt door het onderstaande gif te volgen.

  • Klik gewoon op de gekleurde cel .
  • In de Home tabblad, klik op de pijl naast Vulkleur kies dan Meer kleuren Je zult de RGB codes in de Aangepaste tabblad van de verschenen Kleuren pop-up box.

  • Ren deze code en uw tabel zal gesorteerd op basis van de kleuren .

Lees meer: Sorteren op kleur in Excel (4 criteria)

4. VBA toepassen om Excel-tabel op pictogram te sorteren

Stel dat de tabel van de dataset pictogrammen heeft voor een betere leesbaarheid. U kunt de tabel op basis van de pictogrammen in Excel met VBA macro.

Kijk naar de bovenstaande dataset. Hier heeft de tabel pictogrammen naast de getalwaarden in de Marks kolommen, zodat we kunnen begrijpen welke leerling goede, slechte of gemiddelde resultaten heeft.

Merk op dat, als u niet weet hoe u een pictogram in een cel kunt invoegen, u dit gewoon kunt doen met de Voorwaardelijke opmaak functie in Excel.

  • Selecteer het hele bereik of de hele kolom.
  • Ga naar Voorwaardelijke opmaak -> Pictogrammenreeksen Kies dan de gewenste iconensets uit de optie.

Stappen naar een tabel sorteren op basis van pictogrammen worden hieronder gegeven.

Stappen:

  • Open Visual Basic-editor van de Ontwikkelaar tab en Plaats a Module in het codevenster.
  • Kopieer in het codevenster de volgende code en plak deze.
 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 

Uw code is nu klaar om te draaien.

Hier,

  • xl5Pijlen -We hebben de set van 5 pijlen van de optie in de Voorwaardelijke opmaak .
  • Item (1) -> Gespecificeerd de eerste type pijl-icoon.
  • Punt (2) -> Gespecificeerd de tweede type pijl-icoon.
  • Punt (3) -> Gespecificeerd de derde type pijl-icoon.
  • Punt (4) -> Gespecificeerd de vierde type pijl-icoon.
  • Punt (5) -> Gespecificeerd de vijfde type pijl-icoon.

  • Ren deze code en de tabel zal gesorteerd op basis van de pictogrammen .

Lees meer: Hoe tabel automatisch sorteren in Excel (5 methoden)

Conclusie

Dit artikel liet zien hoe je de tabel sorteren in Excel VBA Ik hoop dat dit artikel nuttig voor je is geweest. Voel je vrij om vragen te stellen als je vragen hebt over het onderwerp.

Hugh West is een zeer ervaren Excel-trainer en -analist met meer dan 10 jaar ervaring in de branche. Hij heeft een bachelor in Accounting en Finance en een master in Business Administration. Hugh heeft een passie voor lesgeven en heeft een unieke lesaanpak ontwikkeld die gemakkelijk te volgen en te begrijpen is. Zijn deskundige kennis van Excel heeft duizenden studenten en professionals over de hele wereld geholpen hun vaardigheden te verbeteren en uit te blinken in hun carrière. Via zijn blog deelt Hugh zijn kennis met de wereld en biedt hij gratis Excel-tutorials en online trainingen aan om individuen en bedrijven te helpen hun volledige potentieel te bereiken.