こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

エクセル コピー ペースト 形式 すべて  マクロ

エクセルの同じシート内で、セルをコピーし、他のセルにペーストするマクロを利用しております。

Worksheets("data").Range("A45").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False

しかし、このマクロでは、ペーストする際に、「形式を選択して貼り付け」の「値」のみが貼り付けられてしまいます。

数式を残した状態でペーストしたいので、「すべて」の状態で貼り付け希望です。

なお、このシートは表示しない状態で使用するため、シートを選んでセルを選択してコピーする方法はできません。(マクロでエラーとなってしまいます。)

どうか、よろしくお願いします。

投稿日時 - 2011-02-17 08:35:44

QNo.6529014

すぐに回答ほしいです

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.3

マクロの勉強がマクロの記録にとどまり、VBAのコードなどを見る絶対量が少ないのだろう。
Sub test01()
Worksheets("Sheet1").Range("a1:C5").Copy Worksheets("Sheet3").Range("c3")
End Sub
を良く勉強してみて。
C3は貼り付ける先の左上隅セルで、関数式の番地が相対番地表現だとのそこを起点に式の番地が変化する。
ーー
WEBのGoogleなどでの照会は「Copy destination」
参考
http://www.happy2-island.com/excelsmile/smile03/capter01106.shtml

投稿日時 - 2011-02-17 21:16:48

ANo.2

> このシートは表示しない状態で使用するため、シートを選んでセルを選択してコピーする方法はできません。(マクロでエラーとなってしまいます。)

ご提示の豚切コードではわかりませんが、多分、Selectしてるんじゃないですか?
すべて貼り付けでいいなら、クリップボードを経由させる必要も無いので間単に

With Worksheets("data")
.Range("A1").Copy .Range("A45")
End With

でOKですよ。Selectしてませんから非表示のシートでも大丈夫です。

投稿日時 - 2011-02-17 14:55:02

ANo.1

変更前:
Paste:=xlPasteValues
変更後:
Paste:=xlPasteAll

投稿日時 - 2011-02-17 09:59:04

あなたにオススメの質問