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

时间:2013-11-04 23:36:20

标签: excel vba excel-vba excel-2010

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

录制的代码

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

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

1 个答案:

答案 0 :(得分:0)

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