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

我在Excel VBA中使用了一个索引匹配公式来查找数据库外部工具的部件号和描述。 这是一个索引匹配公式与condintions。 首先在某个数组中查找一个匹配的数据作为一个机器的工具types,然后从某个数组中匹配到一个configuration。

我的问题是,我想改变查找方式,因为用公式我写特定的范围,我希望它是可弯曲的,所以如果我在数据库中添加一个新的行,我不需要改变代码。 数据库是表名“Illuminators”。

这是与我以前使用的条件的公式,因为你可以看到有一个单元格的参考,如果我将添加一个新的工具到数组下的数据库表,它不会在那里寻找它。

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

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

在这里输入图像说明

在这里输入图像说明

我会感激那些帮助的人

拉斐尔

R21C7R21C1R21C2更改为INDEX(DB!C7, MATCH("zzz", DB!C1))INDEX(DB!C1, MATCH("zzz", DB!C1))INDEX(DB!C2, MATCH("zzz", DB!C1)) 。 这些将根据最后一个文本valdynamic调整终止单元格,在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)"