Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel-将索引匹配公式更改为VBA操作_Vba_Excel_Excel Formula_Array Formulas - Fatal编程技术网

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

Excel-将索引匹配公式更改为VBA操作,vba,excel,excel-formula,array-formulas,Vba,Excel,Excel Formula,Array Formulas,我使用Excel VBA中的索引匹配公式从数据库中查找工具的零件号和说明。这是一个符合条件的索引匹配公式。首先在特定数组中查找机器刀具类型的匹配项,然后将其与特定数组中的配置进行匹配 我的问题是,我想更改为查找方式,因为我用公式编写特定的范围,我希望它是可伸缩的,这样,如果我在数据库中添加新行,我就不需要更改代码。数据库是一个表名“Illuminators” 这是我以前使用的带有to条件的公式,正如您所看到的,这里有一个单元格引用,如果我向数组下的数据库表添加一个新工具,它将不会在那里查找它

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

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

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

 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
更改为
索引(DB!C7,MATCH(“zzz”,DB!C1”)
索引(DB!C1,MATCH(“zzz”,DB!C1))
索引(DB!C2,MATCH(“zzz”,DB!C1))
。这些将根据最后的文本值动态调整终止单元格;数据库中的ue!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)"

R2C1:R21C7
更改为
C1:C7
,或者如果您不想查找整个列(可能很慢),请更改为您知道数据不会超出范围的非常大的内容(例如-
R2C1:R5000C7