使用范围,如何将.COPY DESTINATION粘贴为VALUES

时间:2012-10-10 14:28:59

标签: excel-vba excel-2010 vba excel

我有以下代码,可以很好地将整个单元格复制到新目的地。

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)
  1. 是否可以应对paste special
  2. 或者我 需要使用两个范围将复制/粘贴分成两行 对象?
  3. 编辑:

    是的,我们已经得出结论,你不能在同一行上使用特殊的粘贴作为副本。我还发现,你可能不希望这样。

    如果您从记录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)
    

    从第二行向下选择新粘贴的formule。复制它们。然后将内容作为值粘贴到同一个地方。

    Set rng = ws.Range("A3:A" & Range("G" & Rows.Count).End(xlUp).Row)
    rng.Copy
    rng.PasteSpecial (xlPasteValues)
    Application.CutCopyMode = False 
    

1 个答案:

答案 0 :(得分:4)

或者,您可以直接指定范围值而无需使用copy&粘贴:

Set r1 = Range("D1", "D7")
Set r2 = Range("E1", "E7")

r2.Value = r1.Value ' copies current values from one range to another

在此赋值之后,即使r1具有forumlas,r2范围也将具有值而不是公式。

在你的情况下,也许:

rng.Value = rng.Value

(一旦你按照你的记录将rng设置为正确的大小)