VBA Excel按特定列sorting范围
我有一个表可以包含任意数量的行:
正如我所说,它可以包含1或∞行。
我想通过列B中的Date单元格来sorting范围A3:D∞。我该怎么做?
问题是我不知道如何从A3select到最后一行。
我认为循环到最后一行不是一个正确的方法。
我到目前为止,它看起来像正确的,但范围是硬编码。 我如何摆脱范围的硬编码?
Range("A3:D8").Sort key1:=Range("B3:B8"), _ order1:=xlAscending, Header:=xlNo
试试这个代码:
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
或这个:
Range("A2", Range("D" & Rows.Count).End(xlUp).Address).Sort Key1:=[b3], _ Order1:=xlAscending, Header:=xlYes
如果范围和密钥的起始单元格是静态的,则解决scheme可以非常简单:
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