Excel VBA 自定义函数重新计算不起作用

Excel VBA custom functions recalculate not working

我在 VBA 中有一些自定义函数,我想用标准 excel 按钮重新计算 "Calculate Now""Calculate sheet"。整个工作簿已将 "calculate options" 设置为 "manual".

当我按下 "Calculate sheet" 按钮时,一切正常。我可以根据需要一张一张地重新计算表格。

如果我按"Calculate Now"按钮,就会出现问题。整个工作簿被重新计算,但无法再重新计算.既没有按钮 "Calculate Now",也没有 "Calculate Sheet".

我希望可以捕获 "Calculate Now" 事件,捕获它并将其调用到各个工作表的 "Calculate Sheet" 事件。或者在函数 Worksheet_Calculate() 之后为单元格设置一些标志以将它们注册到下一次重新计算。

Private Sub Worksheet_Calculate()
   ' Register all cells in sheet to next recalculation
End Sub 

是否可以解决这个问题? 我想使用标准 excel 按钮进行重新计算。但我每次按下它们时都需要它们工作。

"Calculate Now" 和 "Calculate sheet" 的行为是设计使然。因为"Calculate Now"之后,都会计算。没有任何变化,不需要重新计算。但是 "Calculate sheet" 仅根据一些陈旧数据计算工作表。所以下次再计算。

建议您使用 "Application.AfterCalculate" 事件。它将在每 "Calculate Now".

后触发

希望对您有所帮助。