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件)
- 最新から表示
- 回答順に表示
No.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
ありがとうございます。
自分の書いたまんま別のモジュールにコピペしたら動きました・・・
謎です。
rangeの部分はおっしゃる通りですね;ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) Excel_マクロ_現在開いているシートにマクロを実行したいです 1 2023/02/14 23:54
- Visual Basic(VBA) マクロで最終行を取得してコピーしたい 3 2022/04/06 19:07
- Visual Basic(VBA) エクセル VBA 処理スピードを上げたいのですが。 6 2023/03/31 20:52
- Visual Basic(VBA) excel vbaでvlooupの変数がわかりません。 7 2022/05/30 09:35
- Excel(エクセル) VBAのoffsetの動き方について教えてください 3 2022/11/25 23:36
- Visual Basic(VBA) Excel VBAで並べ替えをしたい 3 2023/02/25 09:31
- Visual Basic(VBA) 【ご教示ください】VBAの記述方法がわかりません。 2 2022/08/12 21:28
- Visual Basic(VBA) まとめシートから集計シートへA列のコードが一致したら1行コピーするマクロをネット上で見つけました。こ 1 2022/08/30 14:11
- Visual Basic(VBA) 【前回の続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/16 16:44
- Visual Basic(VBA) 集計シートA列のコードと一致する右に並んだシート名(コード)の3行目から10行目をコピーして貼り付け 4 2022/08/18 15:24
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
別のシートから値を取得するとき
-
特定の文字を含むシートだけマ...
-
VBA 入力月で該当シートを選択...
-
VBA 存在しないシートを選...
-
Excel VBA 複数行を数の分だけ...
-
別のシートを参照して計算する方法
-
ユーザーフォームに入力したデ...
-
実行時エラー1004「Select メソ...
-
excelのマクロで該当処理できな...
-
【ExcelVBA】全シートのセルの...
-
実行時エラー'1004': WorkSheet...
-
Excel チェックボックスにチェ...
-
セルのコピーで「オブジェクト...
-
エクセルVBAでダブルクリックを...
-
複数シートに色付きセル(条件つ...
-
重複するidをデータごとにまと...
-
一括印刷マクロ シート名を数字...
-
VBA 最終行まで数式をコピーする
-
Excel マクロについての相談
-
エクセルのシート名変更で重複...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
別のシートから値を取得するとき
-
ユーザーフォームに入力したデ...
-
【ExcelVBA】全シートのセルの...
-
同じ作業を複数のシートに実行...
-
Excelマクロのエラーを解決した...
-
excelのマクロで該当処理できな...
-
XL:BeforeDoubleClickが動かない
-
ExcelVBA シート名を複数セルか...
-
実行時エラー'1004': WorkSheet...
-
VBA 存在しないシートを選...
-
エクセルのマクロについて教え...
-
エクセルのマクロについて教え...
-
ブック名、シート名を他のモジ...
-
【Excel VBA】Worksheets().Act...
-
ExcelのVBAのマクロで他のシー...
-
エクセルのシート名変更で重複...
-
特定の文字を含むシートだけマ...
-
シートが保護されている状態で...
-
Excel マクロについての相談
-
VBA 検索して一致したセル...
おすすめ情報