プロが教えるわが家の防犯対策術!

送付元、送付先が同じ大きさの複合セルのコピーで、

これはうまくできるのですが、
Worksheets("企業").Range(Cells(3, 13), Cells(6, 18)).Copy
Worksheets("企業2").Cells(2, 44).PasteSpecial Paste:=xlPasteAll

これがエラーになります。
転送先 = "Cells(2, 44)"
Worksheets("企業").Range(Cells(3, 13), Cells(6, 18)).Copy
Worksheets("企業2").転送先セル.PasteSpecial Paste:=xlPasteAll

どうすれば、転送できるか教えてください。

A 回答 (1件)

こんばんは



>これがエラーになります。
大分異なる内容になっています。

>転送先 = "Cells(2, 44)"
転送先という変数に「"Cells(2, 44)"」という文字列を代入しています。

>Worksheets("企業2").転送先セル.PasteSpecial
「転送先セル」という変数は定義されていないので、エクセルには意味不明でエラーになると思われます。
仮に、
 Worksheets("企業2").転送先.PasteSpecial
としたとしても、その内容は
 Worksheets("企業2")."Cells(2, 44)".PasteSpecial
のような意味になりますけれど(実際には解釈できない)、エクセルに通じないのでエラーになるはずです。


>どうすれば、転送できるか教えてください。
変数宣言をどのようにしているのか不明ですけれど、
 Dim 転送先 As Range
とか
 Dim 転送先
で宣言していれば、

 Set 転送先 = Worksheets("企業2").Cells(2, 44)
とすれば、変数「転送先」にはAR2セルのセル範囲(=Range)が代入されます。
その上で、
 転送先.PasteSpecial Paste:=xlPasteAll
とすれば動作するでしょう。

ご質問には関係ありませんけれど・・
>Paste:=xlPasteAll
でコピーするのなら、クリップボードを介さずに
 コピー元セル範囲.Copy コピー先セル範囲
と、直接コピーしても1行で同じことができます。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!