2014-01-26 84 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上的本地设置。 –