VBA Excel trier la plage par colonne spécifique
J'ai un tableau qui peut contenir n'importe quel nombre de lignes:
Comme je l'ai dit, il peut contenir 1 ou ∞ lignes.
Je veux trier la plage A3: D∞ par la cellule de Date qui est dans la colonne B. Comment puis-je le faire?
Le problème est que je ne sais pas comment sélectionner De A3 à la dernière ligne.
Je pense que la boucle à la dernière ligne n'est pas une méthode correcte.
J'ai ceci jusqu'à présent, il semble correct, mais la plage est codée en dur. Comment puis-je me débarrasser de l' hardcoding de la gamme?
Range("A3:D8").Sort key1:=Range("B3:B8"), _
order1:=xlAscending, Header:=xlNo
29
demandé sur
cxw
2014-01-30 12:41:26
3 réponses
Essayez ce 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
69
répondu
Dmitry Pavliv
2014-01-30 08:44:00
Ou ceci:
Range("A2", Range("D" & Rows.Count).End(xlUp).Address).Sort Key1:=[b3], _
Order1:=xlAscending, Header:=xlYes
13
répondu
L42
2014-01-30 08:56:21
Si la première cellule de la plage et de la clé est statique, la solution peut être très simple:
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
-1
répondu
Simi
2015-09-14 20:26:56