Sort
работает путем определения региона, который нужно отсортировать, а затем сортировки по ключу в определенном столбце:
.Range(.Cells(1,1),.Cells(lr,lc)).Sort key1:=Range(.Cells(1,"H"),.Cells(lr,"H")), order1:=xlAscending, Header:=xlNo
Так что если вам нужно ограничить один из этих двух диапазонов, вы можете, не влияяданные не в регионе для сортировки (сверху, .Range(.Cells(1,1),.Cells(lr,lc))
).
Если я хочу отсортировать только столбец H диапазона, а не A1 по последнему столбцу (lc) и последней строке (lr), Я мог бы:
.Range(.Cells(1,"H"),.Cells(lr,"H")).Sort key1:=Range(.Cells(1,"H"),.Cells(lr,"H")), order1:=xlAscending, Header:=xlNo
Также см. Как избежать использования Select в Excel VBA .