Vba: een blad sorteren op meerdere kolommen
U kunt de volgende basissyntaxis gebruiken om een Excel-werkblad op meerdere kolommen te sorteren met behulp van VBA:
Sub SortMultipleColumns()
Range(" A1:B11 ").Sort Key1:=Range(" A1 "), Order1:=xlAscending, _
Key2:=Range(" B1 "), Order2:=xlDescending, _
Header:=xlYes
End Sub
In dit specifieke voorbeeld worden de cellen in het bereik A1:B11 eerst gesorteerd op de waarden in kolom A in oplopende volgorde, en vervolgens op de waarden in kolom B in aflopende volgorde.
Houd er rekening mee dat Header:=xlYes aangeeft dat de eerste regel als kopregel moet worden behandeld.
Het volgende voorbeeld laat zien hoe u deze syntaxis in de praktijk kunt gebruiken.
Voorbeeld: sorteer een Excel-blad op meerdere kolommen met behulp van VBA
Stel dat we de volgende gegevensset in Excel hebben die informatie bevat over verschillende basketbalspelers:
Stel dat we de dataset op de volgende manier willen sorteren:
- Sorteer eerst op de waarden in de kolom Team in oplopende volgorde (A tot Z).
- Sorteer vervolgens op de waarden in de kolom Punten in aflopende volgorde (van groot naar klein).
We kunnen hiervoor de volgende macro maken:
Sub SortMultipleColumns()
Range(" A1:B11 ").Sort Key1:=Range(" A1 "), Order1:=xlAscending, _
Key2:=Range(" B1 "), Order2:=xlDescending, _
Header:=xlYes
End Sub
Wanneer we deze macro uitvoeren, ontvangen we de volgende uitvoer:
Rijen worden nu gesorteerd op teamnaam in oplopende volgorde en op punten in aflopende volgorde.
Opmerking #1 : In dit voorbeeld hebben we op twee kolommen gesorteerd. U kunt echter zoveel sleutels opgeven als u wilt, zodat u nog meer kolommen kunt sorteren.
Opmerking #2 : U kunt hier de volledige documentatie van de VBA- sorteermethode vinden.
Aanvullende bronnen
In de volgende tutorials wordt uitgelegd hoe u andere veelvoorkomende taken in VBA kunt uitvoeren:
VBA: Hoe AVERAGEIF- en AVERAGEIFS-functies te schrijven
VBA: SUMIF- en SUMIFS-functies schrijven
VBA: Hoe COUNTIF- en COUNTIFS-functies te schrijven