我有一个公式,它是视图单元格的简单总和,就像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
为包含需要更新的公式的单元格。