如何对超过1500行的范围进行排序?

时间:2012-10-12 17:04:16

标签: excel vba

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))  

相同的结果

1 个答案:

答案 0 :(得分:4)

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

尝试使用

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

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

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