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))
相同的结果
答案 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”设置为数据中没有空格的列