0
Public r1 As Range, rOb As Range, rDat As Range
Set r1 = Range(db.Range("B3"), db.Range("I" & Rows.Count).End(xlUp)) ' about 1500 rows
Set rOb = Range(db.Range("B3"), db.Range("B" & Rows.Count).End(xlUp))
Set rDat = Range(db.Range("G3"), db.Range("G" & Rows.Count).End(xlUp))

r1.Sort Key1:=rOb
'Or
r1.Sort Key1:=rDat

只有大约 900 行被排序。其余的都不是。
有时,排序根本不起作用。
也试过:

r1.Sort Key1:=Range(db.Range("G3"), db.Range("G" & Rows.Count).End(xlUp))  

同样的结果

4

1 回答 1

4

确保您的范围选择最后一行。如果第一列底部有空白单元格,则您的范围不完整。

尝试使用

Set r1 = db.Range("B3").currentregion 

或者

r1 = Range(db.Range("B3"), db.Range("I" & db.cells(Rows.Count,"B").End(xlUp).row)

您将“B”设置为数据中没有空格的列

于 2012-10-12T17:23:34.517 回答