在vba数组macros中匹配excel数据的公式

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 

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

谢谢!

您需要单独设置每个单元格的公式,因为您正在使用的公式是单个单元格的数组公式。 试试这个方法:

 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