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

範囲が最後の行を選択していることを確認してください。列 I の下部に空白のセルがある場合、範囲は不完全です。

使ってみて

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 に答える