1
爲什麼記錄的VBA顯示計算值。而我的代碼顯示唯一的公式(但如果我進入每個單元格並按f2,然後返回,它顯示計算值)。我使用的是表格在Excel 2010中似乎是基本相同的事情:Excel 2010 VBA,爲什麼公式顯示爲文本?
記錄碼
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]])),」「yes 「」,「」no「」)「 – Sorceri
Sorceri - 你應該把它移到答案上,這樣它可以被標記爲這樣。 – guitarthrower