VBA Excel sorteerbereik op specifieke kolom

Ik heb een tabel die een willekeurig aantal rijen kan bevatten:

Zoals ik al zei kan het 1 of ∞ rijen bevatten.

Ik wil bereik A3:D∞sorteren op de datumcel in kolom B.
Hoe kan ik het doen?

Het probleem is dat ik niet weet hoe ik moet selecteren van A3tot de laatste rij.

Ik denk dat doorlussen naar de laatste rij niet de juiste methode is.

Ik heb dit tot nu toe, het ziet er goed uit, maar het bereik is hard gecodeerd.
Hoe kom ik van de hard-codering van het bereik af?

Range("A3:D8").Sort key1:=Range("B3:B8"), _
order1:=xlAscending, Header:=xlNo

Antwoord 1, autoriteit 100%

Probeer deze code:

Dim lastrow As Long
lastrow = Cells(Rows.Count, 2).End(xlUp).Row
Range("A3:D" & lastrow).Sort key1:=Range("B3:B" & lastrow), _
   order1:=xlAscending, Header:=xlNo

Antwoord 2, autoriteit 15%

Of dit:

Range("A2", Range("D" & Rows.Count).End(xlUp).Address).Sort Key1:=[b3], _
    Order1:=xlAscending, Header:=xlYes

Antwoord 3

Als de begincel van het bereik en van de sleutel statisch is, kan de oplossing heel eenvoudig zijn:

Range("A3").Select
Range(Selection, Selection.End(xlToRight)).Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Sort key1:=Range("B3", Range("B3").End(xlDown)), _
order1:=xlAscending, Header:=xlNo

Other episodes