質問
VBA マクロ実行時エラー 1004
- 投稿日時:2009/03/02 18:32
すみません
(1)Workbooks(p_addr_Name).Worksheets(sheet_check).Range(Cells(7, 2), Cells(19, 2)).Copy
(2)Workbooks(p_SH_weekly).Worksheets("Sheet1").Range(Cells(7, i), Cells(19, i)).PasteSpecial Paste:=xlPasteAll
その際(2)で「実行時エラー'1004'」が出ました、教えてください。
*上記引数は全部入りました
宜しくお願いします
回答 (4件)
- 最新から表示
- 回答順に表示
No.4
- 回答日時:2009/03/03 03:37
こんにちは。
エラー1004 ですよね。ぱっと見で、Range 引数内の親オブジェクト装飾ミス
かなと思います。もちろん、#3 ご回答の可能性もあります。
こちらは NG ソース。
Sub test1_NG()
Worksheets("Sheet1").Range(Cells(1, 1), Cells(5, 3)).Copy
Worksheets("Sheet2").Range("A1").Paste
End Sub
1. Range の親オブジェクトとして Worksheets("Sheet1")が装飾されている
2. 一方で Range の引数 Cells(1, 1), Cells(5, 3) には親オブジェクトの
装飾がされていない。したがって、現在 Active なシートが親オブジェクト
として自動補完される
つまり、現在 Sheet2 がアクティブで、上記ソースが実行された場合、
Worksheets("Sheet1").Range(Cells(1, 1), Cells(5, 3)).Copy
は、
Worksheets("Sheet1").Range(Worksheets("Sheet2").Cells(1, 1), _
Worksheets("Sheet2").Cells(5, 3)).Copy
と同意となる。Range で装飾されたシートと Range の引数内で指示している
セルのシートが異なる不整合が原因です。
VBA では、親オブジェクトを省略した場合、大抵の場合で現在 Active なもの
が親オブジェクトとして補完されます。したがって、親オブジェクトの装飾を
意識的にしないと、このようなエラーに悩まされてしまいます。
こちらは修正ソース。
Sub test2_OK()
With Worksheets("Sheet1")
Range(.Cells(1, 1), .Cells(5, 3)).Copy
End With
Worksheets("Sheet2").Range("A1").PasteSpecial Paste:=xlPasteAll
End Sub
With で Range の引数内の親オブジェクトを装飾しています。
Range の引数内でシートが異なる等の不整合が無い場合は、特に Range に
親オブジェクトを装飾する必要はありません。
No.3
- 回答日時:2009/03/02 20:56
確認してませんが…
コピー元とコピー先で、セルの結合の形式が違っているということはありませんか?
No.2
- 回答日時:2009/03/02 19:38
#1です。
ミスしました。
Workbooks(p_SH_weekly).Worksheets("Sheet1").Cells(7, i).PasteSpecial Paste:=xlPasteAll
です。
No.1
- 回答日時:2009/03/02 19:36
Workbooks(p_SH_weekly).Worksheets("Sheet1").Cells(19, i).PasteSpecial Paste:=xlPasteAll
とか?
- 質問者のみ
- ベストアンサーを選ばずに質問を締め切る
このQ&Aを見た人はこんなQ&Aも見ています
- ExcelのVBAでフォルダ指定ができるダイアログボックスを出す方法
- EXCEL VBA シートをコピーする時にエラーが発生してしまう件
- エクセル(Excel) ワイルドカード *(アスタリスク) 使用方法について。
- エクセルVBAでクリップボード内容をクリア
- Excel(VBA)で配列の要素数を調べるには?
- Excelのマクロで実行時エラー”1004”を解決するには?
- EXCELファイルのカレントフォルダを取得するには?
- VBA 実行時エラー1004 rangeメソッドは失敗しました。globalオブジェクトのエラー
- 他言語で言うcontinue文
- Excelで400というエラー
- EXCEL・複数条件がある場合のCOUNTIFの書き方
- VBAエラー '1004' について
- EXCEL VBA で現在開いているブックのファイル名を取得する方法
- Excel VBA シート名をすべて取得し、一覧をシートに入力したい
- VBA マクロ エラー1004 アプリケーション定義またはオブジェクト定義のエラー
関連するQ&A
このカテゴリで人気のQ&Aランキング
- 4Excel VBA シート名をすべて取得し...
- 5VBAにて新規ブックへ既存シート...
- 6Sub ***( ) と Private Sub ***( ) ...
- 7VBAで生年月日検索
- 8VBA初心者の勉強法とお勧めの書籍
- 9エクセル(Excel) ワイルドカード *...
- 10VBAで別エクセルファイルから指定エ...
- 11VBAマクロでCSV出力
- 12他言語で言うcontinue文
- 13エクセルのマクロでプリンタを指定...
- 14TextBoxに半角数字のみの入力しかで...
- 15DoEvents関数って何?
- 16Excel VBAからアメーバIDゲッターを...
- 17実行時エラー429
- 18あるフォルダのファイル名を取得し...
- 19DataGridViewで、選択した行の値を...
- 20エクセルVBAで複数の条件を満たす検...