Excel强制使用公式的单元格上的文本NumberFormat

时间:2018-09-28 02:07:54

标签: excel vba excel-vba excel-formula number-formatting

我正在尝试将公式存储在单元格中。单元格的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"时,该单元格可以正确显示,因此不需要文本数字格式。

2 个答案:

答案 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