Application.Volatile帮助 - Excel VBA

时间:2017-10-12 00:16:04

标签: excel vba excel-vba excel-udf

我正在使用Excel构建预算文件:

  • 在第2行我有几个月
  • 在列A中
  • 我有我的预算类型(类别)。

我没有在每个单独的单元格中构建一堆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

0 个答案:

没有答案