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)"
我在循环的主表中使用公式,并使用第二张图中的数据库工作表:
我会感激那些帮助的人
拉斐尔
将R21C7
, R21C1
和R21C2
更改为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)"