こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

マクロ 並び替え エラーがでる

マクロの記録で以下のようなマクロを作りましたが、実行するとエラー91「オブジェクト変数またはブロック変数が設定されていません」とでます。どう直したらよいでしょうか?

Sub Macro6()

Columns("A:L").Select
Selection.AutoFilter
ActiveWorkbook.Worksheets("Sheet1").AutoFilter.Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Sheet1").AutoFilter.Sort.SortFields.Add Key:=Range _
("A1:A497"), SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:= _
xlSortNormal
With ActiveWorkbook.Worksheets("Sheet1").AutoFilter.Sort
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Range("B2").Select
End Sub

投稿日時 - 2018-08-04 13:01:04

QNo.9524661

すぐに回答ほしいです

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.2

どの行でエラーなのかわかりませんが、...
以下がより正解かも。


Columns("A:L").Select
Selection.AutoFilter

If ActiveSheet.AutoFilterMode = False Then
Selection.AutoFilter
End If

ActiveWorkbook.Worksheets("Sheet1").AutoFilter.Sort.SortFields.Clear
以下省略

投稿日時 - 2018-08-04 16:37:15

ANo.1

Selection.AutoFilter
このコードによって、実行の都度
フィルターのオフオンが切り替わってしまうためと思います。
現コードを生かすなら、次のように、
AutoFilterがオフならオンにすることで解決できると思います。


Columns("A:L").Select
Selection.AutoFilter

If Not Selection Is Nothing Then
Selection.AutoFilter
End If

ActiveWorkbook.Worksheets("Sheet1").AutoFilter.Sort.SortFields.Clear
 以下省略。

投稿日時 - 2018-08-04 13:53:08

補足

すみません、やってみたのですが、同じエラーがでてきます。

投稿日時 - 2018-08-04 14:50:07

お礼

Selection.AutoFilterが2つはいっていたので、1つ目を消したら、できました。早々のご回答ありがとうございました。

投稿日時 - 2018-08-04 16:20:20

あなたにオススメの質問