为什么录制的 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的问题,不是吗?