我正在尝试将公式存储在单元格中。单元格的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"
。我可以在上面的代码中重新添加第(1)
行和其他第(3)
行,但这只是意味着我将停止一次将公式转换回文本的操作,在该单元格上按两次Enter仍会产生"=A7"
。如何阻止Excel在单元格上强制使用文本数字格式?当我手动将其格式返回为"General"
时,该单元格可以正确显示,因此不需要文本数字格式。
答案 0 :(得分:1)
不确定这是否有帮助,但是我过去遇到类似的问题,Excel会根据自己的判断自动将数字格式切换回原来的状态。
所以我要做的是:说我有两列
A B
abc 123
asuh 412
auw 9781
ija 124
我将常规设置另一列C的编号
Range("C:C").Select
Selection.NumberFormat = "general"
然后将A或B复制到其中。在您的情况下,将代码自动化。
它并没有再次变成文本或数字。 至少对我来说。
答案 1 :(得分:1)
如果单元格A7
的数字格式为text
,请尝试将其设置为general
。然后在cells(row, col)
中重新输入公式,并检查结果是否不同。
从属单元格(在公式审核的上下文中)似乎继承了其先例的NumberFormat -除非先例单元格的NumberFormat为general
。