Arrays excel数据的vba数组宏中的匹配公式

Arrays excel数据的vba数组宏中的匹配公式,arrays,vba,excel,Arrays,Vba,Excel,我有VBA代码来填充一个字段,以比较两个工作表并返回结果。然而,这段代码只给出了第一行的结果。有没有办法让这个数组适用于每一行 谢谢 您需要单独设置每个单元格的公式,因为您使用的公式是单个单元格的数组公式。试着这样做: Dim rng As Range Lastrow = ActiveSheet.UsedRange.SpecialCells(xlCellTypeLastCell).Row With Sheets("sample") Set rng = .Range(.Range("A

我有VBA代码来填充一个字段,以比较两个工作表并返回结果。然而,这段代码只给出了第一行的结果。有没有办法让这个数组适用于每一行


谢谢

您需要单独设置每个单元格的公式,因为您使用的公式是单个单元格的数组公式。试着这样做:

  Dim rng As Range
Lastrow = ActiveSheet.UsedRange.SpecialCells(xlCellTypeLastCell).Row
With Sheets("sample")
    Set rng = .Range(.Range("AM1000000").End(xlUp).Offset(1, 0), .Range("AM" & Lastrow))
End With
rng.FormulaArray = "=IF(ISNUMBER(MATCH(1," & Chr(10) & "  (order!R2C17:R1000000C17=RC[-22])*" & Chr(10) & "  (order!R2C7:R1000000C7=RC[-32])*" & Chr(10) & "  (order!R2C24:R1000000C24=RC[-15])," & Chr(10) & "  0)), ""pass"",""review"")"
rng = rng.Value

@YowE3K我认为,
AM
栏尚未填写,而
表(“样本”)
中存在其他数据(Q是我之前回答的后续问题)。然而,我将确认留给OP.@A.S.H-如果数组公式不能一次填充到多个单元格中,您的答案可能就是解决方案,因此我删除了我的评论,就像您回复我一样:D@YowE3K请随意我相信你的编辑,所以任何时候都不需要问我:)我不太在乎编辑公式本身。谢谢-它摆脱了烦人的滚动条!上面写着“对象变量或块变量未设置”有没有办法解决这个问题?@terny我的代码应该替换OP代码的最后两行。你就是这么做的吗?因为您仍然需要先设置范围。
With rng
  .Cells(1).FormulaArray = "=IF(ISNUMBER(MATCH(1," & Chr(10) & _
                           "  (order!R2C17:R1000000C17=RC[-22])*" & Chr(10) & _
                           "  (order!R2C7:R1000000C7=RC[-32])*" & Chr(10) & _
                           "  (order!R2C24:R1000000C24=RC[-15])," & Chr(10) & _
                           "  0)), ""pass"",""review"")"
  .Filldown
  .Value = .Value2
End With