Excel - 不导致计算的函数依赖项

时间:2017-01-17 14:18:15

标签: excel vba excel-vba

我有一个问题,公式没有更新(我故意手动计算)。特别是,它们是具有一些复杂依赖性的公式。

Cell1:  "=Cell2"
Cell2:  "IFERROR(FindData(X1, X2))"

FindData是我编写的VBA函数,它在预定义范围(RangeXYZ)上使用Index(Match(X1),Match(X2))

该范围有许多连接到外部数据服务的公式(不是excel数据连接,只是另一个自定义vba公式)。

当我计算Cell1时,Excel不会计算任何下游内容。我需要一种方法来强制计算RangeXYZ,然后重新计算Cell2,然后重新计算Cell1。

谢谢

编辑:我已经在表单中包含Cell1:

Private Sub Worksheet_Calculate()
    Application.calculatefull
End Sub

但我发现这在无休止的计算循环中结束。我也尝试过指定表单(" Sheet1")。计算,但这似乎不起作用。

一个工作的Ctrl-Alt-F9有点矫枉过正,需要花费太多时间。

1 个答案:

答案 0 :(得分:0)

我强烈建议将RangeXYX作为第三个参数传递。 Excel计算引擎探测测试依赖项的工作簿,您需要帮助它,而不是通过虚假优化来欺骗它。

如果您真的希望将Excel计算引擎加入到您的出价中,那么您可以在事件处理程序中尝试此操作

Option Explicit

Private Sub Worksheet_Calculate()
    Me.Range("RangeXYZ").Calculate
End Sub