2014-01-26 110 views
0

IF(ISBLANK(" & variable & "!G2);" & """""" & ";IF(ISERROR(DATE(YEAR(" & variable & "!G2);MONTH(" & variable & "!G2)+6;DAY(" & variable & "!G2)));" & """""" & "; (DATE(YEAR(" & variable & "!G2);MONTH(" & variable & "!G2)+6;DAY(" & variable & "!G2))))"Excel VBA中formula.local錯誤

variable是變量的名稱包含片材的名稱。

我得到:「應用程序定義或對象定義的錯誤

有人可以幫助我

回答

0

嘗試使用這個(DATE之前刪除():

Range("A1").FormulaLocal = "=IF(ISBLANK(" & variable & "!G2);" & """""" & ";IF(ISERROR(DATE(YEAR(" & variable & "!G2);MONTH(" & variable & "!G2)+6;DAY(" & variable & "!G2)));" & """""" & "; DATE(YEAR(" & variable & "!G2);MONTH(" & variable & "!G2)+6;DAY(" & variable & "!G2))))"

+1

非常感謝你;)現在它的工作; – user3084292

0

的主要問題是,你的if語句使用分號,而不是逗號的

。?。

起初我還以爲你試圖做到這一點的工作,在這種情況下,你會需要使用INDIRECT()。

但在重新閱讀你的問題,我意識到你是想建立一個公式字符串在VBA中

您正在構建的公式字符串不是正確的語法。比如你用「;」代替 」,」。我也認爲你的括號數字是錯誤的。

如果我是你,我會做類似調試此:

sFormula = "IF(ISBLANK(" & variable & "!G2);" & """""" & ";IF(ISERROR(DATE(YEAR(" & variable & "!G2);MONTH(" & variable & "!G2)+6;DAY(" & variable & "!G2)));" & """""" & "; (DATE(YEAR(" & variable & "!G2);MONTH(" & variable & "!G2)+6;DAY(" & variable & "!G2))))" 
Debug.Print sFormula 

,然後粘貼結果字符串到電子表格中,看看它的工作原理,並根據需要編輯。

+2

使用逗號','或'分號;''在FormulaLocal'依賴於PC上的本地設置。 –