vba - Range.Calculate 不更新单元格中的值

标签 vba excel

我有一段代码可以进行大量计算,包括数组,该代码运行良好,但有一行在计算时没有更新。

为了计算该范围(即上述行的总和),我使用:

Application.ScreenUpdating = True
Application.Range(Worksheets("Report2").Cells(40,4).Address & ":" & Worksheets("Report2").Cells(41, 33).Address).Dirty
Application.Range(Worksheets("Report2").Cells(40,4).Address & ":" & Worksheets("Report2").Cells(41,33).Address).Calculate
Application.ScreenUpdating = False

如果有人能对此提供任何启发,那就太好了。 谢谢。

Rgds, 罗德内伊

最佳答案

也许您处于自动计算模式并且 Report2 不是事件工作表:

Range.Dirty 有问题,并且始终在事件工作表上工作

Range.Calculate 在自动模式下不会重新计算未弄脏的单元格。

参见http://www.decisionmodels.com/calcsecretsg.htm对于 Range.Calculate 的其他限制

http://www.decisionmodels.com/calcsecretsh.htm有关使用 VBA 计算公式的更多信息。

关于vba - Range.Calculate 不更新单元格中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21762841/

相关文章:

vba - 在 VBA 中使用 findfirst 条件搜索多个字段访问

Excel vba 宏在 2007 年出现类型不匹配错误,但在 2010 年有效

vba - 尝试从Visual Basic循环搜索

VBA 填充标题下的第一行

arrays - 拖放时如何自动优化Excel公式?

database - 使用 VBA 并行打开数据库

excel - PowerPoint VBA 在运行期间无法识别 Excel 表格

excel - Excel 中的失败概率

excel - VBA 函数将在具有特定行的多行的单元格注释中查找

excel - Vba 查找完全匹配