• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセル 何故かシート間の値のコピーが出来ない)

エクセル シート間の値のコピーができない理由と解決方法

このQ&Aのポイント
  • エクセルのブック間でシートの値をコピーするためのマクロを作成しましたが、実行すると「アプリケーション定義またはオブジェクト定義のエラーです」というエラーメッセージが表示されます。
  • 解決策として、各シートの処理の前にシートを選択するためにSH1.Select、SH2.Select、SH3.Selectを追加することでエラーが解消されるようです。
  • 原因は、コピー先のシートが選択されていないため、範囲指定や値の代入ができないことです。マクロを実行する前にコピー先のシートを選択することで、正常に動作します。

質問者が選んだベストアンサー

  • ベストアンサー
  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.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 と、全部型を付けて宣言しましょう。

7-samurai
質問者

お礼

早速のご回答ありがとうございます。 自分で解決しようと四苦八苦していたのですが、このような形でCellsを使ったのが初めてなもので、全く気づきませんでした。思い切って聞いてみてよかったです。 また、変数の宣言も、今までこれで良いと思っていたので、ちょっとショックです。いつもありがとうございます。

関連するQ&A