プロが教えるわが家の防犯対策術!

VBA初心者です。
元データよりデータをコピーし、同じブックの別のシートでソートを実行した場合
アプリケーション定義、またはオブジェクト定義エラーでソートがうまく実行できません。
ただしwith以下を別のマクロにし、実行した場合は正しく動作するので、
シートのコピーとソートのつなぎの問題かと思うのですが、思うように動きません。
Activeシートをselectなども試したましたが、結果は変わらず・・・
ご教示頂ければ幸いです

----

Sub LOG()

Worksheets(1).Copy Before:=Worksheets(2)

Sheets(1).Name = "元データ" ' 1 番目のシートの名前を変更
Sheets(2).Name = "加工データ" & Format(Date, "mmdd") ' 2 番目のシートの名前を変更

(ここに何かが必要?)
With ActiveSheet
.Sort.SortFields.Clear
Range("A1").Select


'項目1
.Sort.SortFields.Add _
Key:=ActiveSheet.Cells(1, 8), _
SortOn:=xlSortOnValues, _
Order:=xlAscending, _
DataOption:=xlSortNormal

'項目2
.Sort.SortFields.Add _
Key:=ActiveSheet.Cells(1, 9), _
SortOn:=xlSortOnValues, _
Order:=xlAscending, _
DataOption:=xlSortNormal

'項目3
.Sort.SortFields.Add _
Key:=ActiveSheet.Cells(1, 3), _
SortOn:=xlSortOnValues, _
Order:=xlDescending, _
DataOption:=xlSortNormal

With .Sort '並び替えを実行する
.SetRange Range("A1").CurrentRegion
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply

End With
End With

End Sub

A 回答 (1件)

シートはわかっているので



Sub LOG_megu()

Worksheets(1).Copy Before:=Worksheets(2)

Sheets(1).Name = "元データ" ' 1 番目のシートの名前を変更
Sheets(2).Name = "加工データ" & Format(Date, "mmdd") ' 2 番目のシートの名前を変更

'(ここに何かが必要?)
'With ActiveSheet

With worksheets(2) 'シートを明確に
.Sort.SortFields.Clear
'.Range("A1").Select 'いるならピリオドをつけないと


'項目1
.Sort.SortFields.Add _
Key:=.Cells(1, 8), _
SortOn:=xlSortOnValues, _
Order:=xlAscending, _
DataOption:=xlSortNormal

'項目2
.Sort.SortFields.Add _
Key:=.Cells(1, 9), _
SortOn:=xlSortOnValues, _
Order:=xlAscending, _
DataOption:=xlSortNormal

'項目3
.Sort.SortFields.Add _
Key:=.Cells(1, 3), _
SortOn:=xlSortOnValues, _
Order:=xlDescending, _
DataOption:=xlSortNormal

With .Sort '並び替えを実行する
.SetRange .Range("A1").CurrentRegion 'ピリオド漏れ?
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply

End With
End With

End Sub
    • good
    • 0
この回答へのお礼

ありがとうございます。
自分の書いたまんま別のモジュールにコピペしたら動きました・・・
謎です。
rangeの部分はおっしゃる通りですね;ありがとうございました。

お礼日時:2021/06/14 19:37

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!