Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 如何对超过1500行的范围进行排序?_Excel_Vba - Fatal编程技术网

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

Excel 如何对超过1500行的范围进行排序?,excel,vba,Excel,Vba,只有大约900行被排序。其余的都不是。 有时,排序根本不起作用。 还尝试: 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))

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

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

相同的结果

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

试用

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


如果将“B”设置为数据中不带空格的列,请确保范围选择最后一行。如果列I底部有空白单元格,则表示您的范围不完整

试用

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


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

1500行是否一直在列I中有数据?因为您的排序是基于第I列的最后一个单元格,所以可能缺少数据。请尝试
msgbox r1.address
以确保您在整个范围内进行排序。@nutsch,谢谢。第一列几乎是空的。我明白这一点。也许你应该把评论写下来作为答案,这样你就可以投票并接受它了。你的1500行在第一列有数据吗?因为您的排序是基于第I列的最后一个单元格,所以可能缺少数据。请尝试
msgbox r1.address
以确保您在整个范围内进行排序。@nutsch,谢谢。第一列几乎是空的。我明白这一点。也许你应该写评论作为答案,这样你就可以投票并接受它。
r1 = Range(db.Range("B3"), db.Range("I" & db.cells(Rows.Count,"B").End(xlUp).row)