我的单元格会更新任何费用的余额。因为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/