将工作表上的值而不是公式复制到另一个

时间:2018-05-01 13:05:50

标签: excel vba excel-vba

我添加了一个宏来将工作表复制到另一个工作表,以便在该点之后进行的任何更改都可以与原始工作表进行比较。但是,我的宏复制公式而不仅仅是值,因此当某些内容发生更改时,两个工作表都会更改,并且副本没有用处。我所拥有的是:

Worksheets("First Sheet").Cells.Copy _
Destination:=Worksheets("Second Sheet").Cells

有没有一种简单的方法可以解决这个问题?谢谢!

3 个答案:

答案 0 :(得分:1)

您需要使用复制>> PasteSpecial 并仅粘贴值,这是一个2行语法:

Worksheets("First Sheet").Cells.Copy
Worksheets("Second Sheet").Cells.PasteSpecial xlPasteValues

答案 1 :(得分:1)

在你的宏之后,你可以写下这个:

With Worksheets("First Sheet")
    Worksheets("Second Sheet").Range(.UsedRange.Address).Cells.Value2 = .UsedRange.Value2
End With

它获取第一张纸的值,并将它们放到第二张纸上。需要使用UsedRange的技巧,因为Worksheets(2).Cells.Value2 = Worksheets(1).Cells.Value2超出了普通PC的常用资源。

答案 2 :(得分:0)

这将跳过第一张表中的所有公式单元格:

Sub KopyKat()
    Dim r As Range, addy As String
    For Each r In Worksheets("First Sheet").Cells.SpecialCells(2)
        addy = r.Address
        r.Copy Destination:=Worksheets("Second Sheet").Range(addy)
    Next r
End Sub