应用宏并保留公式

时间:2019-01-01 10:55:13

标签: excel vba

在将其他值复制到相关单元格后,我想保留现有公式。

我是Excel VBA的初学者,需要解决一个问题。我在单元格A1中具有上一期间的累计总计值。单元格B1是本月的值。最后是C1,它将上一个期间和本月相加,得出累计总值。

所以我已经为此编写了一个宏,但是下个月我需要将值复制到C1并将其粘贴到A1,这样它将自动再次对a1 + b1求和并写入c1。但是,当我将宏用于复制值时,它将破坏求和公式。

Sub sumfunc()
    Range("C1").Formula = "=A1+B1"
    Range("C1:C3").FillDown
End Sub

Sub copyfunc()
    Worksheets("Sheet1").Range("C1:C3").Copy _
    Destination:=Worksheets("Sheet1").Range("A1")
End Sub

1 个答案:

答案 0 :(得分:1)

如果您在不使用绝对单元格引用的情况下复制该公式,则结果为#REF!发生错误,因为您尝试引用A列左侧的一列。如果使用绝对引用,则将获得循环引用,因为该公式包含对该单元格所在单元格的引用。

您需要复制从公式返回的值,并将其添加到目标,而不是公式本身。这样,C列中公式的值将反映出不断增长的总和。

Sub sumfunc()

    Worksheets("Sheet1").Range("C1:C3").Formula = "=A1+B1"

End Sub

Sub copyfunc()

    with Worksheets("Sheet1")
        .Range("C1:C3").Copy
        .Range("A1").pastespecial paste:=xlpastevalues, operation:=xladd
    end with

End Sub