Excel 2010 VBA,为什么公式显示为文本?

为什么logging的VBA显示计算值。 而我的代码显示唯一的公式(但如果我进入每个单元格,并按f2,然后返回,它显示计算值)。 我在Excel 2010中使用了一个表。似乎本质上是一样的:

logging的代码

Columns("D:D").Select Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove Selection.NumberFormat = "General" Range("D8").Select ActiveCell.FormulaR1C1 = "IF(ISNUMBER(FIND(""Value1"",[@[Program]])),""yes"",""no"")" 

我的代码

 Sub Formula_Insert Dim MyTbl As listObject Set MyTbl = ActiveSheet.ListObjects("NameofTableonSheet") With MyTbl .ListColumns.Add 4 .HeaderRowRange(4) = "Column D Header" With .ListColumns("Column D Header") .Range.NumberFormat = "General" .DataBodyRange.formula = "IF(ISNUMBER(FIND(""Value1"",[@[Program]])),""yes"",""no"")" End With End With 

显然,插入公式的原因是用户可以看到公式而不是结果。 我认为围绕公式的选项中的设置都是正确的,并且由于logging的代码显示了计算的值,所以必须是VBA的问题,不是吗?

如果您处于Excel中并且没有获得结果,并且公式正在以文本forms读取,请清除单元格中的格式。 然后重做公式