Excel VBA矩阵错误1004
我刚刚得到一个错误:运行时错误“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
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,))),"""")"