Подтвердить что ты не робот

Диапазон сортировки VBA Excel по определенному столбцу

У меня есть таблица, которая может содержать любое количество строк:

enter image description here

Как я уже сказал, он может содержать 1 или ∞ строки.

Я хочу сортировать диапазон A3: D∞ ячейкой Date, которая находится в столбце B. Как это сделать?

Проблема в том, что я не знаю, как выбрать из A3 в последнюю строку.

Я думаю, что привязка к последней строке не является правильным методом.

У меня есть это до сих пор, это сортировка выглядит правильно, но диапазон жестко запрограммирован. Как избавиться от жесткого кодирования диапазона?

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

Ответ 1

Попробуйте этот код:

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

Ответ 2

Или это:

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

Ответ 3

Если начальная ячейка диапазона и ключа статическая, решение может быть очень простым:

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