我有一张表,我试图根据多个条件检索数据。我正在使用Index Match。如果我手动将公式粘贴到excel中,则可以在以下两种情况下使用。
首先,我使用索引匹配公式
中原始表的完整列范围输入了数组公式 Selection.FormulaArray = _
"=IF(ISNA((INDEX(Data!C2:C8,MATCH(1,(Data!C2=RC2)*(Data!C3=RC3)*(Data!C4=R3C)*(Data!C5=R4C),0),4))),""F"",(INDEX(Data!C2:C8,MATCH(1,(Data!C2=RC2)*(Data!C3=RC3)*(Data!C4=R3C)*(Data!C5=R4C),0),4)=R4C))"
这适用于大数据,但运行速度非常慢。因此,我已经从表中修改了特定范围的公式,例如30000行。当我在带有行和列引用的excel中手动输入时,这种方法有效,这也大大减少了处理时间。但是当我尝试使用R1C1样式通过VBA中的代码使用它时会抛出错误。下面是范围为40000行的代码示例
Selection.FormulaArray = _
"=IF(ISNA((INDEX(Data!R2C2:R40000C8,MATCH(1,(Data!R2C2:R40000C2=R[-1]C2)*(Data!R2C3:R40000C3=R[-1]C3)*(Data!R2C4:R40000C4=R3C)*(Data!R2C5:R40000C5=R4C),0),4))),""F"",(INDEX(Data!R2C2:R40000C8,MATCH(1,(Data!R2C2:R40000C2=R[-1]C2)*(Data!R2C3:R40000C3=R[-1]C3)*(Data!R2C4:R40000C4=R3C)*(Data!R2C5:R40000C5=R4C),0),4)=R4C))"
显示的错误是
“运行时错误1004.无法设置的公式数组属性 范围类。“
我觉得错误是由于应该如何输入的语法风格。 在此先感谢您的支持