Excelマクロでセルを別のシートにコピーすると数式がコピーされエラーになる対処
Excelのセルを別のシートにコピーする
セルをコピーする方法としてはいろいろな書き方がありますが今回はこの方法をベースにしました。
例題
2行目ソース
'通常のコピー
Worksheets("Sheet1").Range("E3").Copy Worksheets("Sheet2").Range("A1")
Sheet1のE3の値2をSheet2のA1にコピーする
問題なくコピーされる
次に6行目のソースを試します。
'関数の含まれているセルをコピー
Worksheets("Sheet1").Range("E6").Copy Worksheets("Sheet2").Range("A3")
E列をオートサムしたセルE6(関数を含むセル)を別シート(Sheet2)のA3にコピーする
こままだと #REF になりコピーすることが出来ません。
同一シートでもエラーとなります。
最後に以下を試してみます。
'関数の含まれているセルの値をコピー
Worksheets("Sheet2").Range("A5").Value = Worksheets("Sheet1").Range("E6").Value
2番目の例題と同じように関数を含むセルを今度はA5にコピーしてみます。
今度はきちんと表示されました。
3番目の例題では初めの2つのコードでは、「シート1をコピーしてシート2にペーストする」というような意味合いですが、今回は「シート2のセルはシート1のセルと同じ」という書き方をしています。
Valueプロパティは指定しなければValueとみなす、と理解していたので
通常の値だけのセルであれば.Valueプロパティを省略してもうまく機能するが関数を含むセルの場合は.Valueを省略せずに書かないといけないというは勉強になりました。
しかしなぜValueをしないと動かんのだ・・・
それを説明できないのでまだまだ勉強不足ですな
誰か賢い方教えてください。