
こんばんは。
タイトルの通り、1004エラーが出て苦戦しています。
タイトルのエラーはシート名がしっかり入力されてないと出るエラーのようですが、試行錯誤した結果、解決には至らなかったのでご教授頂けると幸いです。
Sub テスト()
Dim Ws As Worksheet
Dim A As Range
Set A = Range("A1").End(xlDown)
Set A = A.Offset(0, 18)
For Each Ws In Worksheets
Ws.Activate
Range("A1", A).Copy ⇒ここでエラー
Range("A30").PasteSpecial xlPasteAll
Next Ws
End Sub
For Eachを使い、すべてのシートに適用する事が目的です。
教えて頂きたい事は2つです。
①、sheet1以外をアクティブにしてマクロを回すと、最初からRange("A1", A).Copyで1004エラーが出ます。
②、sheet1をアクティブにしてマクロを回すとsheet1は実行されますが、sheet2に移った時に1004エラーが出ます。
よろしくお願いいたします。
No.6ベストアンサー
- 回答日時:
こんばんは。
下記で、どうでしょうか?
Sub テスト()
Dim Ws As Worksheet
For Each Ws In Worksheets
Ws.Activate
Range("A1:S" & Range("A1").End(xlDown).Row).Copy
Range("A30").PasteSpecial xlPasteAll
Next Ws
End Sub
1つ注意点としては、セルのA2にデータがないと、エラーになってしまう
様な気がします。
Range("A1:S" & Range("A1").End(xlDown).Row).Copy
⇒こんなやり方があるんですね…自分では思いつけなかったです。
ありがとうございます。動作確認いたしました。感謝いたします。

No.4
- 回答日時:
第1引数、第2引数共に変数にするのがスマートなのでは。
No.3
- 回答日時:
記述されているコードから何をしたいのか読み取れませんが
Range や Worksheets をいきなり書くのはダメです。
Worksheets は Workbook オブジェクトのインスタンスを指定する必要があります。
Workbook オブジェクトは ThisWorkbook.Worksheets や ActiveWorkbook.Worksheets 等、
操作しようとしている対象のインスタンスを指定します。
Range は Worksheet オブジェクトのインスタンスを指定する必要があります。
For Eachですべてのシートに何かするのであれば
そこで指定している Ws を指定することになるでしょうか。
Excelマクロは本来必要なものを省略しても半端に動いてしまうところがあり、それが罠のようになっていたります。
どのブックのどのシートに対しての処理なのか明示的に記述するようにしましょう。
ご回答ありがとうございます。
Range や Worksheets をいきなり書くのはダメです。
⇒そうなんですね。インスタンスという言葉も初めて聞きました。
どのブックのどのシートに対しての処理なのか明示的に記述するようにしましょう。
⇒ありがとうございます!明示的に記述するようにいたします。

No.2
- 回答日時:
Range("A1", A).Copy の場合、
省略されているものをそのまま指定すると
ActiveSheet.Range("A1", A).Copy になります。
つまり、”A1” はActiveSheet の[A1]であり、
第2引数の A は Ws.Activate を実行する前にActiveであった
Sheet1 の セルになります。
第1引数のセルのシートと
第2引数のセルのシートが異なるため
エラーになっています。
ご回答ありがとうございます。
ActiveSheet.Range("A1", A).Copy になります。
⇒ご説明ありがとうございます。勉強になります。
第1引数のセルのシートと
第2引数のセルのシートが異なるため
エラーになっています。
⇒こちらを回避するには、先にシートを明示すれば良いということでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) ExcelVBAに関する質問 3 2023/02/17 10:47
- Visual Basic(VBA) Excel vbaについての質問 3 2023/04/18 16:14
- Visual Basic(VBA) vbaのエラー対応(実行時エラー7:メモリが不足しています) 4 2023/04/24 00:20
- Visual Basic(VBA) 【VBAエラー】Nextに対するForがありません 対策について 5 2022/11/21 21:26
- Excel(エクセル) vba シート名の一覧を2列に分けるには 5 2023/04/24 08:56
- Excel(エクセル) エクセル 値をコピペした時に、条件付き書式で塗られた背景色もペーストさせる 2 2023/04/05 17:21
- Visual Basic(VBA) 【ご教示ください】VBAの記述方法がわかりません。 2 2022/08/12 21:28
- Visual Basic(VBA) エラーコード1004 6 2022/06/09 14:12
- Visual Basic(VBA) Excelで下記のようにマクロを作ったところ、一回目は実行できたのですが、二回目以降「実行時エラー1 1 2022/03/25 08:08
- Visual Basic(VBA) excel vbaでvlooupの変数がわかりません。 7 2022/05/30 09:35
このQ&Aを見た人はこんなQ&Aも見ています
-
マクロの「Rangeメソッドは失敗しました’Globalオブジェクト」エラーの解決方法について
Excel(エクセル)
-
Worksheets メソッドは失敗しました。のエラー処理のやり方
Visual Basic(VBA)
-
VBA 実行時エラー1004 rangeメソッドは失敗しました。globalオブジェクトのエラー
Excel(エクセル)
-
-
4
実行時エラー 438になった時の対処法を教えて下さい。
Visual Basic(VBA)
-
5
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
6
worksheetFunctionクラスのVlookupプロパティを取得できません エラーへの対応
Visual Basic(VBA)
-
7
エクセルのラベルの値(文字列)を垂直方向で中央揃えにするには?
Excel(エクセル)
-
8
'Range'メソッドは失敗しました
Excel(エクセル)
-
9
エクセルのエラーメッセージ「400」って?
Visual Basic(VBA)
-
10
B列の最終行までA列をオートフィル
Visual Basic(VBA)
-
11
EXCEL VBAで全選択範囲の解除
Excel(エクセル)
-
12
もしセルが#N/A"なら~をする・・・には?"
Excel(エクセル)
-
13
EXCEL VBA セルに既に入力されている文字に文字を追加する
Excel(エクセル)
-
14
【EXCEL】【VBA】空欄は飛ばして処理する方法を教えて下さい。
Excel(エクセル)
-
15
エラーコード1004
Visual Basic(VBA)
-
16
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
17
VBAでループ内で使う変数名を可変にできないか。
Visual Basic(VBA)
-
18
UserForm1.Showでエラーになります。
工学
-
19
オートフィルターをかけ、#N/A以外で絞込みするVBA記述をご教示ください
Excel(エクセル)
-
20
VBAでfunctionを利用しようとしたときに「引数は省略できません」というエラーが出ます
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
iPhoneのExcelアプリで、別のシ...
-
Excelシートの保護時にデータの...
-
Excelの「0」だけ非表示、小数...
-
エクセルで条件に一致したセル...
-
Excelで複数シートの選択セルを...
-
エクセルで1月0日と表示される!!
-
日付が未入力の際はゼロか、空...
-
複数シートの同じセル内容を1シ...
-
ExcelでTODAY関数を更新させな...
-
EXCELのハイパーリンクのセルを...
-
エクセルで複写のように自動入...
-
シート参照で変数を使いたい(EX...
-
Excelでスクロールすると文字が...
-
エクセルで、加筆修正したセル...
-
条件書式でリスト内以外の単語...
-
ハイパーリンク で『指定された...
-
別シートのセルを絶対参照にする
-
エクセルで”入力シート”の文字...
-
条件に合った数値の合計を表示...
-
エクセルで特定のセルの値を別...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excelの「0」だけ非表示、小数...
-
Excelで複数シートの選択セルを...
-
Excelシートの保護時にデータの...
-
日付が未入力の際はゼロか、空...
-
エクセルで1月0日と表示される!!
-
エクセルで条件に一致したセル...
-
複数シートの同じセル内容を1シ...
-
ExcelでTODAY関数を更新させな...
-
別シートのセルを絶対参照にする
-
Excelでスクロールすると文字が...
-
EXCELのハイパーリンクのセルを...
-
エクセルで20万行あるシート...
-
エクセルで、加筆修正したセル...
-
エクセル ハイパーリンクで画像...
-
Rangeメソッドは失敗しました。...
-
マクロ 新しいシートにデータ...
-
(Excel)あるセルに文字を入力...
-
エクセルで複写のように自動入...
-
EXCEL関数でシート名が変わる可...
-
エクセルで指定のセルのみ完全...
おすすめ情報