Excel:使用 VBA 修改公式

Excel:使用 VBA 修改公式

我有一个公式,它是视图单元格的简单总和,就像SUM(A1;A10;A20)
我希望有一个带有宏的按钮,可以改变此公式以将新单元格添加到总和中(例如 A30)。

有没有办法通过 VBA 做到这一点?

提前致谢

答案1

您可以使用简单的宏:

Sub Calc()
  Dim SourceCell As String
  Dim DestinationCell As String
  SourceCell = InputBox("Enter the source cell:","Microsoft Excel")
  DestinationCell = InputBox("Enter the destination cell:","Microsoft Excel")
  Range(SourceCell).Value = Range(SourceCell).Value + Range(DestinationCell).Value
End Sub

答案2

虽然评论中已经给出了足够的解决方案,但这里还是提供了一个示例来说明如何执行最初要求的操作。可能有更漂亮的方法来实现它,但简单的方法是:要检索公式(使用.formula),删除末尾括号(使用Left()),添加我们想要的单元格并再次关闭它。

Sub addCell()
    Dim formula_str As String, source As Range
    Set source = Range("D2")
    formula_str = source.Formula
    source.Value = Left(formula_str, Len(formula_str) - 1) & "," & Selection.Address(False, False) & ")"
End Sub

我们添加的单元格是Selection.Address,表示当前选择,但(False, False)删除了绝对引用。因此是“ A5”而不是“ $A$5”。

在此处输入图片描述

自然地,改变source为包含需要更新的公式的单元格。

相关内容