更新 UDF,我提前知道可能改变结果的单元格,但这些单元格不是直接参数

更新 UDF,我提前知道可能改变结果的单元格,但这些单元格不是直接参数

我有一个 UDF,用于计算一年内的增长结转。例如,如果第三和第四季度的增长为零,则在第二季度计算年度增长率。在这种情况下,我需要上一年第四季度和今年前两个季度的增长。在此处输入图片描述

计算或编程起来并不困难。为了方便使用,接收者大多倾向于只将最后一个观察点作为函数的输入。其他输入是我拥有的观察数据的四分之一数。在这种情况下,它将是CarryOver(C16,2)

通过这种方式,如果另一个过去的值发生变化,它不会更新我的 UDF。我可以通过使用来强制执行,Application.Volatile但首先,如果使用的值基于引用另一张表的公式,它似乎不起作用。更根本的是,我可以提前计算哪些单元格将与两个输入一起使用(最后一个数据的单元格,我拥有的季度数,因此在这种情况下:),C11:C16因此可能有一种方法可以告诉 Excel 每次隐含单元格中的一个值发生变化时计算这个 UDF,这比选项更好volatile。这可行吗?

编辑:我的 UDF 的核心是:

Public Function CarryOver(DerniereDonneeDure As Range, AcquisAuMoment_T_plus_X As Integer)


Dim Trim As Double
Trim = 100
        Ligne = DerniereDonneeDure.Row - AcquisAuMoment_T_plus_X + 1
        Colonne = DerniereDonneeDure.Column
        For i = -4 To -1
            Trim = Trim * (1 + Cells(Ligne + i, Colonne).Value)
            Ecoule = Ecoule + Trim
        Next
        For j = 0 To AcquisAuMoment_T_plus_X - 1
            Trim = Trim * (1 + Cells(Ligne + j, Colonne).Value)
            Encours = Encours + Trim
        Next
        For j = AcquisAuMoment_T_plus_X To 3
            Encours = Encours + Trim
        Next
    Acquis = Encours / Ecoule - 1

End Function

相关内容