Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/24.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
Vba 多页数据中的查找功能_Vba_Excel_Lookup - Fatal编程技术网

Vba 多页数据中的查找功能

Vba 多页数据中的查找功能,vba,excel,lookup,Vba,Excel,Lookup,我有多张数据表,我想将其放在一张表中(所有数据表都在同一工作簿中) 我尝试在excel文件中使用Hlookup函数,如下所示: =HLOOKUP("University",Sheet1!$A$1:$G$2, 2, FALSE). 但是,由于我有100多张数据表,我想找到一种方法来拖动函数并自动生成第二行下面的函数。我尝试使用间接函数,在前面设置一个参考列,如下所示,但无法处理它 =HLOOKUP("University", 'INDIRECT(A3)'!$A$1:$G$2, 2, FALSE

我有多张数据表,我想将其放在一张表中(所有数据表都在同一工作簿中)

我尝试在excel文件中使用
Hlookup
函数,如下所示:

=HLOOKUP("University",Sheet1!$A$1:$G$2, 2, FALSE). 
但是,由于我有100多张数据表,我想找到一种方法来拖动函数并自动生成第二行下面的函数。我尝试使用间接函数,在前面设置一个参考列,如下所示,但无法处理它

=HLOOKUP("University", 'INDIRECT(A3)'!$A$1:$G$2, 2, FALSE)
我的下一个选择是VB代码。但是,我是VB新手。有人能帮忙吗


将您的个人工作表名称放在<代码>摘要工作表的H列中,将行号放在I列中(作为辅助列),并将此公式写入摘要工作表的单元格<代码>A2

=IFERROR(HLOOKUP(A$1,INDIRECT($H2&"!A1:G"&$I2),$I2,0),)
然后拖动到F列并向下拖动,以获得尽可能多的图纸行组合。我用了10行,但是你可以根据需要把它改长或改短

完成后,可以对A列中的0进行筛选,并删除任何没有数据的行

如果图纸名称中有空格,则需要将
间接
公式调整为:

INDIRECT("'"&$H2&"'!A1:G"&$I2)

假设您已经在A列中键入了所有100多个图纸名称,无论图纸名称中是否有空格,这都将起作用:

=HLOOKUP("University", OFFSET(INDIRECT(ADDRESS(1,1,1,1,A2)),0,0,2,7),2,FALSE)
最好的方法是“定义名称”+
间接的
+
HLOOKUP
(或
查找
)如下:

单元格中的公式:(这在
A2
中,然后简单地自动填充到
G2
,然后将所有内容向下)(您将在工作表之间得到一行0,可以在以后过滤或删除(复制/粘贴值))

H2
设置为2,对于
H3
:(从
H3
自动填充)

非常适合我

无需手动键入sheetnames或类似内容(仅列
H:H
作为辅助对象)。每次选择一个可以过滤掉的新工作表时,您都会得到带有0的行。(或者,如果复制/粘贴值,也可以删除)

+2
位于
…st,COUNTIF($A$1:$A1,0)+2)和…
+2
只要求从第2页开始(如果摘要是第一页)。如果要从第一页开始查找,可以将其更改为
+1

而不是
“间接(A3)”$A$1:$G$2
尝试类似于
间接(“&A3&”!$A$1:$G$2”)
每张工作表中只有一个条目吗?是的,每张工作表中只有一个条目。但是,我用你的函数来解决我的问题。非常感谢你!谢谢你指出这一点。完全读一遍那部分!我调整了我的答案以反映这一点。是的,您的解决方案确实帮助了我,特别是IFERROR函数,它提醒我设置if error函数。非常感谢。非常感谢您这么快的回复。
defined names
name:    SList
formula: =MID(TRANSPOSE(GET.WORKBOOK(1))&T(NOW()),FIND("]",TRANSPOSE(GET.WORKBOOK(1))&T(NOW()))+1,255)
=IFERROR(HLOOKUP(A$1,INDIRECT("'"&INDEX(SList,COUNTIF($A$1:$A1,0)+2)&"'!$A:$G"),$H2,0),"")
=MAX(($H2+1)*($A2>0),2)