Excel VBA矩阵错误1004

Excel VBA矩阵错误1004,excel,vba,office365,Excel,Vba,Office365,我刚刚得到一个错误:运行时错误“1004”:应用程序定义的错误或对象定义的错误 实际矩阵代码为: Const A As String = "Ark1" Const B As String = "Hans" Sub test2() Dim y As Long Dim formulaP1 As String Dim formulaP2 As String Dim formulaP3 As String Dim formulaP4 As String

我刚刚得到一个错误:运行时错误“1004”:应用程序定义的错误或对象定义的错误

实际矩阵代码为:

Const A As String = "Ark1"
Const B As String = "Hans"

Sub test2()
    Dim y As Long
    Dim formulaP1 As String
    Dim formulaP2 As String
    Dim formulaP3 As String
    Dim formulaP4 As String
    Dim formulaP5 As String
    Dim formulaP6 As String
    Dim formulaP7 As String

    y = Sheets(B).Range("A" & Rows.Count).End(xlUp).Row

    formulaP1 = "=IFERROR(INDEX('" & A & "'!$E$2:$E$" & y & ",X_X_X()"
    formulaP2 = "MATCH(RIGHT(CELL(""filename"",$A$1),Y_Y_Y()"
    formulaP3 = "LEN(CELL(""filename"",$A$1))-Z_Z_Z()"
    formulaP4 = "FIND(""]"",CELL(""filename"",$A$1)))&W_W_W()"
    formulaP5 = B & "!D2&" & B & "!C2,'" & A & "'!$C$2:$C$" & y & "V_V_V()"
    formulaP6 = "&IF(SEARCH(D2,'" & A & "'!$D$2:$D$" & y & ",1)>0," & B & "!D2,)&IF(SEARCH(C2,'" & A & "'!$G$2:$G$" & y & ",1)U_U_U()"
    formulaP7 = ">0," & B & "!C2,))),"""")"

    Sheets(B).Range("A1").Select
    With Sheets(B).Range("J2:J" & y)
            .FormulaArray = formulaP1
            .Replace What:="X_X_X()", Replacement:=formulaP2, lookat:=xlPart
            .Replace What:="Y_Y_Y()", Replacement:=formulaP3, lookat:=xlPart
            .Replace What:="Z_Z_Z()", Replacement:=formulaP4, lookat:=xlPart
            .Replace What:="W_W_W()", Replacement:=formulaP5, lookat:=xlPart
            .Replace What:="V_V_V()", Replacement:=formulaP6, lookat:=xlPart
            .Replace What:="U_U_U()", Replacement:=formulaP7, lookat:=xlPart
        '.FormulaArray = _
        '    "=IFERROR(INDEX('" & A & "'!$E$2:$E$" & y & ",MATCH(RIGHT(CELL(""filename"",$A$1),LEN(CELL(""filename"",$A$1))-FIND(""]"",CELL(""filename"",$A$1)))&" & B & "!D2&" & B & "!C2,'" & A & "'!$C$2:$C$" & y & "&IF(SEARCH(D2,'" & A & "'!$D$2:$D$" & y & ",1)>0," & B & "!D2,)&IF(SEARCH(C2,'" & A & "'!$G$2:$G$" & y & ",1)>0," & B & "!C2,))),"""")"
        .FillDown
    End With
End Sub
但这也会产生同样的错误代码,所以我真的需要你的帮助


我做错了什么?谢谢。

我认为在公式中包含字符串时应该使用双引号“”,而不是用撇号“
单元格(“'filename”“$A$1”)&“&B&”括起来的引号!D2&“&B&”!C2看起来很讨厌。将第一个
=
更改为
'=
,并以文本形式检查公式,看看有什么错误。更好的是,实际公式是什么样子的,您想做什么?较新的函数通常可以取代对复杂公式数组公式的依赖。'=IFERROR(INDEX('Ark1'!$E$2:$E$32,MATCH(RIGHT(CELL(“filename”)、$A$1)、LEN(CELL(“filename”)、CELL(“filename”、$A$1))&Hans!D2&Hans!C2,'Ark1'!$C2:$c32&IF(SEARCH(SEARCH(D2,'Ark1'!$D2:$d32,1)>0、Hans!D2、$D2)&IF(SEARCH(SEARCH)(C2,'Ark1)$G:$G)>0、C2、C2、C2、C2、C2、“)不是
CELL(“filename”、$A$1)、LEN(CELL(“filename”、$A$1))-FIND(“]”)、CELL(“filename”、$A$1))
只是返回插入公式的工作表的名称吗?对于
表(B).范围(“J2:J”和y)
,这将是Hans。
"=IFERROR(INDEX('" & A & "'!$E$2:$E$" & y & ",MATCH(RIGHT(CELL(""filename"",$A$1),LEN(CELL(""filename"",$A$1))-FIND(""]"",CELL(""filename"",$A$1)))&" & B & "!D2&" & B & "!C2,'" & A & "'!$C$2:$C$" & y & "&IF(SEARCH(D2,'" & A & "'!$D$2:$D$" & y & ",1)>0," & B & "!D2,)&IF(SEARCH(C2,'" & A & "'!$G$2:$G$" & y & ",1)>0," & B & "!C2,))),"""")"