无法运行.FormulaArray,但代码作为常规公式运行

时间:2015-03-25 15:30:00

标签: arrays vba formula

我有一个创建数组公式的VBA代码,但是当我运行脚本时,它会创建一个运行时错误'1004'(无法设置Range类的FormulaArray属性)。我也在下面列出了工作的excel公式。

奇怪的是,如果我在代码中使用简单的.FormulaR1C1语法,该脚本运行正常,该公式可行。一旦公式在excel电子表格中,我打开公式并单击“CTRL + SHIFT + ENTER”它就可以了。 代码如下,我猜测公式中的IF语句是错误的原因。

你们中任何人都可以看到我做错了吗?

谢谢! :)

Set rng53 = Worksheets("Settings").Range("N42")
rng53.Offset(r1).FormulaArray = "=IFERROR(IF(Settings!R39C7=Admin!R7C17,INDEX(Dimensions!R5C18:R4171C18,MATCH(RC7&RC9,Dimensions!R5C6:R4171C6&Dimensions!R5C12:R4171C12,0)),IF(Settings!R39C7=Admin!R8C17,INDEX(Dimensions!R5C18:R4171C18,MATCH(RC7&RC11&RC13,Dimensions!R5C6:R4171C6&Dimensions!R5C15:R4171C15&Dimensions!R5C17:R4171C17,0)),""Error"")),""N/A"")"

Working Excel formula:
{=IFERROR(IF(Settings!$G$39=Admin!$Q$7,INDEX(Dimensions!$R$5:$R$4171,MATCH($G42&$I42,Dimensions!$F$5:$F$4171&Dimensions!$L$5:$L$4171,0)),IF(Settings!$G$39=Admin!$Q$8,INDEX(Dimensions!$R$5:$R$4171,MATCH($G42&$K42&$M42,Dimensions!$F$5:$F$4171&Dimensions!$O$5:$O$4171&Dimensions!$Q$5:$Q$4171,0)),"Error")),"N/A")}

1 个答案:

答案 0 :(得分:0)

FormulaArray属性的字符数限制为255。 公式的长度为310。 https://msdn.microsoft.com/en-us/library/office/ff837104.aspx