【发布时间】: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