我的单元格会更新任何费用的余额。因为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进行更新。我认为这与宏有关,但我不知道。

最佳答案

您正在将范围引用作为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))

关于excel-vba - 如何修复由于宏而无法自动更新的单元格,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50423151/

10-12 17:10