- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセル 何故かシート間の値のコピーが出来ない)
エクセル シート間の値のコピーができない理由と解決方法
このQ&Aのポイント
- エクセルのブック間でシートの値をコピーするためのマクロを作成しましたが、実行すると「アプリケーション定義またはオブジェクト定義のエラーです」というエラーメッセージが表示されます。
- 解決策として、各シートの処理の前にシートを選択するためにSH1.Select、SH2.Select、SH3.Selectを追加することでエラーが解消されるようです。
- 原因は、コピー先のシートが選択されていないため、範囲指定や値の代入ができないことです。マクロを実行する前にコピー先のシートを選択することで、正常に動作します。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは。maruru01です。 ソースを見ただけですが。 Cells()にもちゃんとシートの指定をしないと、現在選択されているシートのセルになってしまいますよ。 SH1.Range(Cells(1, 1), Cells(D, E)).Value ↓ SH1.Range(SH1.Cells(1, 1), SH1.Cells(D, E)).Value あと、質問の問題とは関係ないと思いますが、変数の宣言で、 Dim SH1, SH2, SH3, SH4, SH5, SH6 As Worksheet とすると、Worksheetで宣言されるのは最後のSH6だけで、残りはVariantになります。 ちゃんと、 Dim SH1 As Worksheet Dim SH2 As Worksheet ・・・・・ Dim SH6 As Worksheet と、全部型を付けて宣言しましょう。
お礼
早速のご回答ありがとうございます。 自分で解決しようと四苦八苦していたのですが、このような形でCellsを使ったのが初めてなもので、全く気づきませんでした。思い切って聞いてみてよかったです。 また、変数の宣言も、今までこれで良いと思っていたので、ちょっとショックです。いつもありがとうございます。