Excel ';类型不匹配';索引匹配错误

Excel ';类型不匹配';索引匹配错误,excel,vba,Excel,Vba,如果格式错误,请在就职后致歉(让我知道)。提前感谢您的帮助 试图在VBA中找到以下Excel公式的等效项: =INDEX([OPEN2.xlsx]Sheet1!$AH$1:$AH$35596, MATCH(1, (F2=[OPEN2.xlsx]Sheet1!$G$1:$G$35596)* (G2=[OPEN2.xlsx]Sheet1!$I$1:$I$35596)* (Q2=[OPEN2.xlsx]Sheet1!$V$1:$V$35596)* (R2=[OPEN2.xlsx]Sheet1!$W$1

如果格式错误,请在就职后致歉(让我知道)。提前感谢您的帮助

试图在VBA中找到以下Excel公式的等效项:

=INDEX([OPEN2.xlsx]Sheet1!$AH$1:$AH$35596,
MATCH(1,
(F2=[OPEN2.xlsx]Sheet1!$G$1:$G$35596)*
(G2=[OPEN2.xlsx]Sheet1!$I$1:$I$35596)*
(Q2=[OPEN2.xlsx]Sheet1!$V$1:$V$35596)*
(R2=[OPEN2.xlsx]Sheet1!$W$1:$W$35596)*
(S2=[OPEN2.xlsx]Sheet1!$X$1:$X$35596)*
(T2=[OPEN2.xlsx]Sheet1!$Y$1:$Y$35596)
,0))
我尝试了下面的方法(当然是在一个循环中),但收到了“类型不匹配”错误。我将“as range”下面的每个变量调暗,并声明每个范围(例如“Set rmtd=range(“g1:g35596”))

我应该声明为另一个变量类型吗?我可能做了一些基本的错误-我如何使下面的数据兼容/可比较,这样我就不会收到“类型不匹配”

Do While ActiveCell.Offset(0, -1).Value <> ""
ActiveCell.Value = Application.WorksheetFunction.Index(rmmxref, _
Application.WorksheetFunction.Match(1, _
(ActiveCell.Offset(0, -16) = rmtd) * _
(ActiveCell.Offset(0, -15) = rmvd) * _
(ActiveCell.Offset(0, -6) = rmsnoti) * _
(ActiveCell.Offset(0, -5) = rmsccy) * _
(ActiveCell.Offset(0, -4) = rmbnoti) * _
(ActiveCell.Offset(0, -3) = rmbccy) * _
(ActiveCell.Offset(0, -18) = rmcp), _
0))
     ActiveCell.Offset(1).Select
  Loop
Do While ActiveCell.Offset(0,-1).Value“”
ActiveCell.Value=Application.WorksheetFunction.Index(rmmxref_
Application.WorksheetFunction.Match(1_
(活动单元格偏移量(0,-16)=rmtd)*_
(活动单元偏移量(0,-15)=rmvd)*_
(活动单元格偏移量(0,-6)=rmsnoti)*_
(活动单元格偏移量(0,-5)=rmsccy)*_
(活动单元格偏移量(0,-4)=人民币NOTI)*_
(活动单元格偏移量(0,-3)=rmbccy)*_
(活动单元格偏移量(0,-18)=rmcp)_
0))
ActiveCell.Offset(1)。选择
环

在VBA中不能像那样对数组进行乘法。最简单的解决方案是使用Evaluate并将公式字符串传递给它。谢谢,Rory!如果我让它工作,我会尝试一下,并让您知道解决方案。我如何一次性评估这7个条件,以便在所有7个条件都位于任何一行时返回数字“1”?努力找到正确的写作方法。感谢您,实际上,您的公式长度超过了求值的255个字符限制。你能不能简单地把公式放进单元格,然后用它的值替换它。非常感谢你的另一个建议。我尝试使用原始公式,然后使用其输出,但我遇到了两个问题(I)我无法在VBA中找到使用此Excel公式并使其工作的语法(ii)链接到第1点我猜-公式需要使用变量值,因此我无法使任何东西工作。