【问题标题】:Excel 2010 VBA, why does formula display as text?Excel 2010 VBA,为什么公式显示为文本?
【发布时间】:2013-11-04 23:36:19
【问题描述】:

为什么录制的 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的问题吧?

【问题讨论】:

  • If 语句前需要一个等号: .DataBodyRange.formula = "=IF(ISNUMBER(FIND(""Value1"",[@[Program]])),""是"",""否"")"
  • Sorceri - 您应该将其移至答案,以便将其标记为此类。

标签: vba excel excel-2010


【解决方案1】:

如果您在 excel 中并且没有得到结果,并且公式被读取为文本,请清除单元格中的格式。然后重做公式

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-04-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-13
    相关资源
    最近更新 更多