次のコードがあります。これは、セル全体を新しい宛先にコピーするのに問題なく機能します。
Dim ws As Worksheet, rng As Range
Set ws = Sheets("Duplicates")
Set rng = ws.Range("A2")
rng.Copy Destination:=Range("A2:A" & Range("G" & Rows.Count).End(xlUp).Row)
- に対応させることは可能ですか
paste special
? - または、2 つの範囲オブジェクトを使用して、コピー/貼り付けを 2 行に分割する必要がありますか?
編集:
そうです、コピーと同じ行に特殊貼り付けを行うことはできないと結論付けました。私が見つけたのは、とにかくしたくないかもしれないということです。
レコード 1 から数式をコピーし、それをすべてのレコードに貼り付けると、VALUES
コピーされた最初のレコードの数式の値が取得されます。
これは私が欲しかったものではありません。したがって、式をすべてのレコードに式としてコピーし、それらの式をコピーして値として貼り付ける必要があります。
Dim ws As Worksheet, rng As Range
Set ws = Sheets("Duplicates")
最初の範囲 (数式を含む単一のセル) を設定し、 Col に基づいて内容をスプレッドシートの一番下までコピー/貼り付けしますG
。
Set rng = ws.Range("A2")
rng.Copy Destination:=Range("A2:A" & Range("G" & Rows.Count).End(xlUp).Row)
下の 2 行目から、貼り付けたばかりのフォーミュラを選択します。それらをコピーします。次に、内容を値として同じ場所に貼り付けます。
Set rng = ws.Range("A3:A" & Range("G" & Rows.Count).End(xlUp).Row)
rng.Copy
rng.PasteSpecial (xlPasteValues)
Application.CutCopyMode = False