我正在使用VBA在MS Excel工作表中编写公式。当我手动将公式复制到单元格时它可以工作,但当我使用下面的行时,它给我一个运行时错误:
' 1004':应用程序定义或对象定义的错误。
ActiveSheet.Cells(Row + 3, Column + i).Formula = "=SUMPRODUCT(--(OFFSET(endResourceNaam;2;0):OFFSET(endResourceNaam;1000;0)=$A" & Row + 1 & ");--(OFFSET(endResourceNaam;2;4):OFFSET(endResourceNaam;1000;4)=$E" & Row + 1 & ");OFFSET(endResourceWeek;2;" & ColumnLetter(Column - 1) & "$1):OFFSET(endResourceWeek;1000;" & ColumnLetter(Column - 1) & "$1))"
生成的(第一个循环)字符串是:
=SUMPRODUCT(--(OFFSET(endResourceNaam;2;0):OFFSET(endResourceNaam;1000;0)=$A6);--(OFFSET(endResourceNaam;2;4):OFFSET(endResourceNaam;1000;4)=$E6);OFFSET(endResourceWeek;2;O$1):OFFSET(endResourceWeek;1000;O$1))
我通过从VBA代码打印它来测试公式,而不是复制/面食到细胞。这样我肯定知道生成的字符串实际上是正确的。根据我所学到的,VBA中有一些保护,可以确保当我尝试编写公式时,公式正确且有效。这种保护可能有一些东西阻止我将公式写入单元格。
我是否有任何解决方案可以使用VBA将所需的公式写入单元格?
答案 0 :(得分:1)
我的赌注是因为它是一个数组公式,你应该使用FormulaArray属性。
ActiveSheet.Cells(Row + 3, Column + i).FormulaArray =