Excel - 将索引匹配公式更改为 VBA 操作

Excel - Changing Index-Match Formula to a VBA Action

我在 Excel VBA 中使用索引匹配公式从数据库中查找工具的部件号和描述。这是一个符合条件的索引匹配公式。首先在某个数组中查找机器工具类型的匹配项,然后将其与某个数组中的配置进行匹配。

我的问题是我想更改为查找方式,因为使用公式我写了特定范围并且我希望它是灵活的,这样如果我在数据库中添加一个新行我就不需要更改代码.数据库是 table 名称 "Illuminators".

这是我之前使用的条件公式,正如您所见,有一个单元格引用,如果我将新工具添加到数组下的数据库 table,它不会查找它在那里。

 Selection.FormulaArray = "=INDEX(DB!R2C1:R21C7,MATCH(1,(DB_Illumiators!R2C1:R21C1=RC[1])*(DB_Illumiators!R2C2:R21C2=RC[2]),0),4)"

我在循环中使用主 sheet 中的公式,并在第二张图片中使用数据库工作 sheet 中的公式:

有帮助的人我会感激

拉斐尔

R21C7R21C1R21C2更改为INDEX(DB!C7, MATCH("zzz", DB!C1))INDEX(DB!C1, MATCH("zzz", DB!C1))INDEX(DB!C2, MATCH("zzz", DB!C1))。这些将根据最后一个文本值动态调整终止单元格;在 DB!A:A.

Selection.FormulaArray = _
  "=INDEX(DB!R2C1:INDEX(DB!C7, MATCH(""zzz"", DB!C1)), MATCH(1, (DB_Illumiators!R2C1:INDEX(DB!C1, MATCH(""zzz"", DB!C1))=RC[1])*(DB_Illumiators!R2C2:INDEX(DB!C2, MATCH(""zzz"", DB!C1))=RC[2]), 0), 4)"