首页 > 解决方案 > 如何修复由于宏而未自动更新的单元格

问题描述

我有一个单元格可以更新任何费用的余额。因为excel中没有减法函数,所以我写了这个简单的宏:

Private Function SubtractChecking(cell As Range)
    Dim currentBalance As Single
    currentBalance = cell.Value

    SubtractChecking = currentBalance - WorksheetFunction.Sum(Range("B7:M23"))
End Function

该函数有效,但保存此函数的单元格不会自动更新计算;我检查了 Excel 计算选项是否设置为自动。我要么必须双击单元格来更新它,要么使用 Ctrl-Shift-Alt-F9 来更新。我认为这与宏有关,但我不知道。

标签: excelvba

解决方案


您将范围引用作为 currentBalance 的参数传递给函数,而不是用于修改余额的范围。

Private Function SubtractChecking(cell As Range, vals as range)
    Dim currentBalance As Single

    currentBalance = cell.Value2
    SubtractChecking = currentBalance - WorksheetFunction.Sum(vals)

End Function

用法:=SubtractChecking(A1, B7:M23)

使用本机工作表函数 SUM:=sum(a1, -sum(B7:M23))


推荐阅读