VBA:更新后无法自动重新计算 Excel 公式 - 需要手动交互
Posted
技术标签:
【中文标题】VBA:更新后无法自动重新计算 Excel 公式 - 需要手动交互【英文标题】:VBA: cannot automatically recalculate Excel formula after updating it -- needs manual interaction 【发布时间】:2013-01-16 14:59:28 【问题描述】:在 VBA 中,我正在更新单元格中的公式(可以正常工作),但自动重新计算不起作用:
updated_formula = "=COUNT(Sheet1!A3:A" & nr_points & ")"
Cells(x, y).Formula = updated_formula
ActiveWorkbook.Save
Cells(x, y).Calculate
该公式只是计算另一个工作表中现有行的数量。当我运行宏时,函数文本字段中单元格的值是正确的,但在单元格本身中我有"#NAME?"
,我需要在函数中按 ENTER 来重新计算公式。
我是否对 Excel 期望过高?还是我做错了什么?
编辑:情况的屏幕截图——这是我在运行宏后看到的。 (抱歉黑屏,必须为客户公司保持匿名)
【问题讨论】:
Cells(x, y)
在哪张表中?
@Siddharth 它在与 Sheet1 不同的工作表中,但在同一个 Excel 文件中。我正在用屏幕截图更新帖子,也许它会使我的描述更清晰。
不,没关系。我假设它在同一张纸上。代码没有问题。它应该可以工作......也许我错过了什么......让我再看看......
什么是ANZAHL
?我还以为是COUNT
试试这个.. 将Cells(x, y).Formula = updated_formula
更改为Cells(x, y).FormulaLocal = updated_formula
是否有效?
【参考方案1】:
看了你的截图,就明白了。
改变
Cells(x, y).Formula = updated_formula
到
Cells(x, y).FormulaLocal = updated_formula
【讨论】:
+1
为了清晰和理解 OP 需要什么... ;)【参考方案2】:
您的代码在我的工作表上运行良好,并在宏运行后立即更新计算值。请确保将计算选项设置为“自动”:功能区数据选项卡>计算选项>自动。
【讨论】:
也许这很重要 - 我使用的是 Excel 2007。 谢谢,它已在 cmets 中解决:我使用的是德语版的 Excel,由于将 Excel 函数本地化的愚蠢决定,我不得不使用 FormulaLocal 而不是 Formula。这只是由这些愚蠢的本地化函数引起的一系列问题中的最新问题! @Cristina 很高兴知道你解决了,Siddharth Rout - 感谢您的建议 - 这对我来说是一个很好的经验,以备将来使用! 这里的寓意:每当您使用非英语 Excel 时,请睁大眼睛寻找额外的“乐趣”:-)【参考方案3】:我知道这是一篇迟到的帖子,但我遇到了类似的问题,对我有用的是改变
Cells(x, y).Calculate
到
Cells(x, y).Dirty
【讨论】:
以上是关于VBA:更新后无法自动重新计算 Excel 公式 - 需要手动交互的主要内容,如果未能解决你的问题,请参考以下文章
LibXL:打开 MS excel 文件时如何强制重新计算公式?