在 VBA 中重新计算单元格或范围的不同方法

ath*_*hos 3 excel vba excel-formula

第一种方法建议在is it possible to recalculate only a cell or a range in VBA 's 应答中:

Range("A1").Calculate
Run Code Online (Sandbox Code Playgroud)

第二种方法位于如何让 Excel 从 VBA 中刷新工作表上的数据?的回复:

Cells(RowA,ColB).Formula = Cells(RowA,ColB).Formula
Run Code Online (Sandbox Code Playgroud)

第三个

Range("XXX").Value = Range("XXX").Value
Run Code Online (Sandbox Code Playgroud)

似乎也有效。

三者之间有什么区别吗?

小智 5

  1. .Calculate:告诉Excel在给定范围内重新计算公式。我认为这不适用于 UDF,除非使用 Application.Volatile

  2. .公式:重新保存给定范围内的公式。类似于单击单元格然后按 Enter 键而不进行更改。如果您的范围大于一个单元格,则会失败。

  3. .Value:用值覆盖公式。类似于复制/粘贴值。如果您的范围大于一个单元格,则会失败。