1

私はこれについて少なくとも 15 の異なる記事を読み、さまざまな解決策を試しました。以下の VBA コードを使用して、可変サイズのワークシートを 3 つの異なるレベルで並べ替えようとしています。

コードをステップ実行すると、並べ替えの .apply 引数でエラー 1004 が発生します。

実行時エラー '1004':

ソート参照が無効です。並べ替えるデータ内にあり、最初の [並べ替え] ボックスが同じでも空白でもないことを確認してください。

誰かがこの問題の理由または解決策を提案できますか?

Sub Subbing()

Dim LastCell as String

Range("A2").End(xlDown).Select

LastCell = Selection.Offset(0, 13).Address
Worksheets("Sheet1").Activate

With ActiveWorkbook.Worksheets("Sheet1").Sort
        .SortFields.Clear
        .SetRange Range("A2", LastCell)
        .SortFields.Add Key:=ActiveWorkbook.Worksheets("Sheet1").Range("R2"), _ SortOn:=xlSortOnValues, Order:=xlAscending
        .SortFields.Add Key:=ActiveWorkbook.Worksheets("Sheet1").Range("S2"), _ SortOn:=xlSortOnValues, Order:=xlAscending
        .SortFields.Add Key:=ActiveWorkbook.Worksheets("Sheet1").Range("D2"), _ SortOn:=xlSortOnValues, Order:=xlAscending
        .Header = xlGuess
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply

End With
End Sub

私はあなたの応答を楽しみにしています。これはよくある質問ですが、問題を解決するために広く提案されている方法をすべて試しましたが、役に立ちませんでした。

敬具

ピート

4

2 に答える 2

2

Looks to me like you selected A:N to sort, but are sorting on the values of R and S as well as D. Run it through Step mode and put a watch on LastCell - if I'm right, that won't be far enough over for you to actually sort what you want.

于 2013-02-22T14:41:36.410 に答える
1

... Your criteria range is outside of the sort area - You can't do this.

What I mean is that your sort range will be between Column A and Column N (13 columns after A), but your criteria are in Columns R & S.

If you extend your sort range, all will work.

Hope this fixes everything.

于 2013-02-22T14:41:55.333 に答える