
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ランキング
-
特定の文字を含むシートだけマ...
-
Excelマクロのエラーを解決した...
-
【ExcelVBA】全シートのセルの...
-
実行時エラー'1004': WorkSheet...
-
エクセルで通し番号を入れてチ...
-
VBA 検索して一致したセル...
-
IFステートの中にWithステート...
-
VBA 存在しないシートを選...
-
実行時エラー1004「Select メソ...
-
エクセルVBA Ifでシート名が合...
-
ユーザーフォームに入力したデ...
-
Excel VBA で自然対数の関数Ln...
-
【Excel VBA】Worksheets().Act...
-
VBA 指定した回数分、別シート...
-
エクセル VBA シートのコピー
-
エクセルの絶対参照の一括操作...
-
VBAで指定シート以外の選択
-
【VBA】指定した検索条件に一致...
-
エクセルのシート名変更で重複...
-
【VB6】EXCELのシート名を変更...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
特定の文字を含むシートだけマ...
-
Excelマクロのエラーを解決した...
-
excelのマクロで該当処理できな...
-
ユーザーフォームに入力したデ...
-
実行時エラー'1004': WorkSheet...
-
XL:BeforeDoubleClickが動かない
-
エクセルVBA Ifでシート名が合...
-
実行時エラー1004「Select メソ...
-
エクセルのシート名変更で重複...
-
【ExcelVBA】全シートのセルの...
-
VBA 存在しないシートを選...
-
ブック名、シート名を他のモジ...
-
Excel チェックボックスにチェ...
-
VBA 検索して一致したセル...
-
エクセルで通し番号を入れてチ...
-
シートが保護されている状態で...
-
【VBA】特定の文字で改行(次の...
-
ExcelのVBAのマクロで他のシー...
-
Worksheet_Changeの内容を標準...
-
EXCELVBAを使ってシートを一定...
おすすめ情報