【发布时间】:2018-09-28 02:07:53
【问题描述】:
我正在尝试将公式存储在单元格中。该单元格的NumberFormat 设置为"@",即文本。当我这样做时:
TargetSheet.Cells(Row, Col).Formula = "=A7"
A7 中包含 "1805R03-01" 我得到 "=A7" 显示在单元格中。
即使我认为如果您通过 Formula 属性设置文本格式字段,您应该可以定义公式,但我将代码更改为:
(1) TargetSheet.Cells(Row, Col).NumberFormat = "General"
(2) TargetSheet.Cells(Row, Col).Formula = "=A7"
这让我得到了我想要的东西,因为现在我的单元格显示正确的值 "1805R03-01" 但 Excel 再次将数字格式设置为“@”,因此如果我在该单元格上按 Enter 键,则显示返回"=A7"。我可以在上面的代码中重新添加 Line (1) 和额外的 Line (3),但这只是意味着我将停止一次将我的公式转换回文本,在该单元格上按两次输入仍然会导致 @ 987654332@。如何阻止 Excel 在单元格上强制使用文本数字格式?当我手动将其格式返回为 "General" 时,单元格会正确显示,因此不需要文本数字格式。
【问题讨论】:
-
所以在自动格式化后,Excel 不再将公式中的
A7视为单元格引用,而是将其视为文字字符串"A7"?如果单元格A7的数字格式是文本,请尝试将其设置为其他内容(即使是像0这样的技术错误只是为了看看)。然后在cells(row, col)中重新输入公式,检查是否得到不同的结果。您可以尝试的另一件事是TargetSheet.Cells(Row, Col).Formula = "=""""&A7",看看空字符串是否会干扰自动格式化。可能有一个应用程序设置,您可以通过代码切换以打开/关闭自动格式化。 -
它实际上将整个公式
"=A7"不仅仅是"A7"视为文字字符串。而且您实际上找到了解决方案,当我将源单元格格式设置为General(之前是文本)时,问题就不再发生了。如何将评论标记为解决方案? -
如果您想将其标记为解决方案,我已将我的评论作为答案发布,其中包含一些额外的细节。
标签: vba excel excel-formula number-formatting