【发布时间】:2015-12-15 14:35:02
【问题描述】:
我有一个冗长的 VBA 宏,可以将内容放入 Excel 工作表中。有些内容是简单的公式,如=Q7*.3。宏完成后,这些将在单元格中显示为文本,而不是值。 F9 没有修复它。
现在,如果我只需单击其中一个单元格,然后在编辑栏中并按回车键,公式就会立即正确计算。从那时起,一切都适用于该单元格。
我记得以前见过这个,但我不记得解决方案
- 是的,格式设置为数字格式
- 是的,我尝试手动更改格式,但没有效果
- 是的,我将 .Calculate 发送到工作表,以及手动发送
- 不,没有前导引号或类似的东西
- 不,我没有进行任何更改以使其正确计算,只需在编辑栏中点击返回即可
它似乎是某种状态标志未在单元格上设置,因此 Excel 认为它不必计算它?示例:
TempD = GetFXRate("HUF")
WS.Cells(R, 20).Formula = "=Q" & R & IIf(Round(TempD, 4) = 1, "", "*" & TempD)
所有值和常量都是有效的。 TempD 约为 0.3。所有引用的单元格都存在。第一次迭代 R=7。
【问题讨论】:
-
您是使用
<range>.Formula还是<range>.Value通过VBA 放置内容? -
WS.Cells(R, 19).Formula = "=Q7*" & FXRate
-
总是最好发布产生此问题的代码,否则我们只是在猜测问题所在。
-
我可以重现的唯一方法是在设置公式之前将单元格的数字格式设置为文本。
-
在您使用
.formula=更新值之前 单元格的数字格式是什么?如果您在 设置值之后更改为通用数字格式,您将看到您在此处描述的行为。