Vba FomulaArray导致运行时错误1004应用程序定义或对象定义错误

Vba FomulaArray导致运行时错误1004应用程序定义或对象定义错误,vba,excel,Vba,Excel,我尝试在VBA中使用fomulaArray函数,但总是收到上述错误。我知道255个字符是fomularray的限制,但它甚至没有告诉我fomular超出范围的错误,我想肯定还有其他错误 当我在Excel中的VBA外部使用该公式时,该公式以其原始形式工作 Worksheets("Last Week").Range("AJ6:AJ1500").FormulaArray = "=IF(AND(F6="""",I6=""Projects""),MIN(IF((O7:O31=O6)*(NOT(G7:G31

我尝试在VBA中使用fomulaArray函数,但总是收到上述错误。我知道255个字符是fomularray的限制,但它甚至没有告诉我fomular超出范围的错误,我想肯定还有其他错误

当我在Excel中的VBA外部使用该公式时,该公式以其原始形式工作

Worksheets("Last Week").Range("AJ6:AJ1500").FormulaArray = "=IF(AND(F6="""",I6=""Projects""),MIN(IF((O7:O31=O6)*(NOT(G7:G31=""Yes""))*(NOT(G7:G31=""Not OK""))*(NOT(G7:G31=""postponed""))*(NOT(G7:G31=""""))*(NOT(H7:H31=""delayed""))*(NOT(F7:F31=""Failure"")),AJ7:AJ31)),IF(F6="""","""",IF(AH6>0,14,IF(AE6>0,13,IF(AC6>0,12,IF(AB6>0,11,IF(AA6>0,10,IF(Z6>0,9,IF(V6>0,8,IF(U6>0,7,IF(Y6>0,6,IF(X6>0,5,IF(W6>0,4,IF(T6>0,3,IF(S6>0,2,IF(R6>0,1,0))))))))))))))))"
我在每个地方都添加了双“,”并将“;”替换为“,”。我现在不知道是什么导致错误1004


一旦我知道了错误的原因,我会尝试将公式分成两个变量,作为FormulaArray限制的解决办法。

尝试使用聚合的常规公式:

Worksheets("Last Week").Range("AJ6:AJ1500").Formula = "=IF(AND(F6="""",I6=""Projects""),AGGREGATE(15,6,AJ7:AJ31/((O7:O31=O6)*(NOT(G7:G31=""Yes""))*(NOT(G7:G31=""Not OK""))*(NOT(G7:G31=""postponed""))*(NOT(G7:G31=""""))*(NOT(H7:H31=""delayed""))*(NOT(F7:F31=""Failure""))),1),IF(F6="""","""",IF(AH6>0,14,IF(AE6>0,13,IF(AC6>0,12,IF(AB6>0,11,IF(AA6>0,10,IF(Z6>0,9,IF(V6>0,8,IF(U6>0,7,IF(Y6>0,6,IF(X6>0,5,IF(W6>0,4,IF(T6>0,3,IF(S6>0,2,IF(R6>0,1,0))))))))))))))))"

我今天尝试过这个选项,一开始它看起来很棒,但最后它没有显示顶部数组的最小值。这里的问题是,我有不同的组,我想在每个grop(AJ6)的头行看到最小值。现在我只看到组标题之间的行中的值。