我正在使用Excel构建预算文件:
我没有在每个单独的单元格中构建一堆sumif,而是尝试为每个输入(bank,AMEX,VISA等)编写自定义VBA函数。
我遇到的问题 - 没有Application.Volatile
代码,在编辑其他单元格后,每个单元格中的值都不会自动更新 - 但是当我添加Application.Volatile
时,它只会记录最后一个值每个细胞,忽略预算类型(类别)。
我是如何建立这个功能的?
Function AMEX() As Double
Application.Volatile
Dim rngNet As Range
Dim rngMonth As Range
Dim rngTypes As Range
Dim intSearchMonth As Integer
Dim strSearchType As String
Set rngNet = shAMEX.Range("E:E")
Set rngMonth = shAMEX.Range("F:F")
Set rngTypes = shAMEX.Range("G:G")
intSearchMonth = shBudget.Cells(2, ActiveCell.Column)
strSearchType = shBudget.Cells(ActiveCell.Row, 1)
AMEX = Application.WorksheetFunction.SumIfs(rngNet, _
rngMonth, intSearchMonth, _
rngTypes, strSearchType)
End Function