Hoe bereik sorteren in vba?

Om een celbereik met VBA te sorteren, moet u de “SORT”-methode gebruiken, waarmee u een enkele sleutel (kolom) of meerdere sleutels (voor meerdere kolommen) kunt instellen om te sorteren. Ook kunt u instellen in welke volgorde (oplopend of aflopend) u wilt sorteren en kunt u opgeven of u een koptekst heeft of niet.

Sorteer een bereik met VBA

  1. Gebruik het bereikobject om het bereik op te geven dat u wilt sorteren.
  2. Typ een punt en voer de sorteermethode in.
  3. Geef de sleutel op die u wilt gebruiken om te sorteren.
  4. Stel de sorteervolgorde in.
  5. Vermeld of je een header hebt of niet.
sorteer een bereik op vba
 Range("A1:A11").Sort Key1:=Range("A1"), _ Order1:=xlAscending, _ Header:=xlYes

In de bovenstaande code gebruikte je het bereik A1:A11, en in de sorteermethode gebruikte je oplopende volgorde, waarbij je vermeldde dat je een header in het bereik hebt.

De sorteermethode van VBA begrijpen

Voordat u een macro schrijft om een bereik te sorteren, kunt u zich het beste verdiepen in de sorteermethode en de argumenten ervan begrijpen.

 Sort (Key1, Order1, Key2, Type, Order2, Key3, Order3, _ Header, OrderCustom, MatchCase, Orientation, SortMethod, _ DataOption1, DataOption2, DataOption3)

Dit zijn de belangrijkste argumenten die je in het echte leven zult gebruiken.

  • Sleutel : Hier moet u een cel definiëren waarvan u de kolom als sorteerbasis wilt gebruiken.
  • Volgorde : Volgorde waarin u de kolom wilt sorteren (oplopend/aflopend).
  • Header : Een constante om aan te geven of u al dan niet een header heeft of wilt dat VBA raadt.

Sorteer in aflopende volgorde

In de volgende code heb ik ‘xlDescending’ gebruikt om de bedragkolom in aflopende volgorde te sorteren.

Sorteer in aflopende volgorde
 Range("A1:A13").Sort Key1:=Range("A1"), _ Order1:=xlDescending, _ Orientation:=xlSortColumns

Meerdere kolommen (sleutels) gebruiken om te sorteren

U kunt ook meerdere kolommen gebruiken om een bereik te sorteren. Laten we een voorbeeld uit de onderstaande tabel nemen, waarin u meerdere vermeldingen heeft met namen en plaatsen van werknemers, en u moet sorteren op naam en plaats.

Gebruik meerdere kolommen om te sorteren

Hier is de code die je moet gebruiken:

codes voor meerdere kolommen
 Range("A1:C13").Sort Key1:=Range("A1"), _ Order1:=xlAscending, _ Key2:=Range("B1"), _ Order1:=xlAscending, _ Header:=xlYes

Zoals je in de code kunt zien, heb je sleutel1 en sleutel2. In sleutel1 heb je de kolom met de naam van de medewerker, en in sleutel2 heb je de plaatskolom. Voor beide kolommen is de sorteervolgorde oplopend en zijn de kopteksten aanwezig.

Let op: U kunt dit gebruiken zoals elke kolom die u wilt gebruiken als basis voor het sorteren met behulp van sleutels en volgorde.

Het veranderen van de lotoriëntatie

Wanneer u normaal gesproken gegevens in Excel sorteert, kunt u standaard sorteren op basis van kolommen. Maar via de sorteeropties kunt u de sorteerrichting wijzigen van links naar rechts in plaats van van boven naar beneden.

lotoriëntatie

Op dezelfde manier heb je een argument in de sorteermethode om de oriëntatie te wijzigen ( link ).

methode om de oriëntatie te sorteren
 Range("A1:C13").Sort Key1:=Range("A1"), _ Order1:=xlAscending, _ Orientation:=xlSortRows

Voeg een reactie toe

Je e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *