我想根據條件的值設置RANGE.FORMULA屬性。我需要爲此使用IF(cond,truepart,falsepart)函數,因爲我正在測試的條件需要一個ListObject引用。 truepart和falsepart本身又是公式。 示例原型代碼如下:Excel 2010:使用if函數設置RANGE.FORMULA屬性
Public Sub example()
With ActiveSheet.Range("A1")
.Formula = "=if(TRUE, ""=1"", ""=2"")"
.Select
.Copy
.PasteSpecial xlPasteValues
End With
End Sub
運行示例()之後,單元格A1顯示了字符串 「= 1」。我期待公式的結果,這只是1. 如果我點擊編輯行並按Enter鍵,公式將被評估爲1,但我想要避免該步驟。
謝謝拉爾夫。顯然,我的問題還不夠嚴謹。實際上,我需要的是作爲if函數的結果的「公式」。公式「= 1」和「= 2」只是極其複雜的公式的最簡單示例。我不想通過真實公式的複雜性來掩蓋我的問題。但是,如果交互式輸入,則公式「= 1」應該在單元格中評估爲1。所以不幸的是這並不能解決我的問題。 – 2015-02-23 14:39:54
再次感謝。我也想到了這個解決方案,但它並沒有導致我期望的結果。原因是我在這裏簡單描述爲TRUE的條件使用ListObject標題行「標籤」來引用數據正文範圍列(對不起,如果我不知道正確的術語)。我有一個名爲[x]的標題的ListColumn,並且我想在條件中使用[x],例如[X] <3。問題在於[x]只能用於Spreadsheet-Formula中,而不能在VBA條件中使用,正如您所建議的那樣。或者我錯了這個假設? – 2015-02-24 07:43:36
如果你想引用VBA中的ListObject,你可能想看看這個答案:http://stackoverflow.com/questions/7643652/finding-active-cells-column-header-name-using-vba-in-excel – Ralph 2015-02-24 08:07:33