excel如何提取其它工作簿中的某个工作表的表名

来源:百度知道 编辑:UC知道 时间:2024/06/21 06:50:07
比如我现在有一张工作表sheet1,我里面有个单元,单元列名为"工程",在另一个工作薄book2中有一个工作表名字就是"工程",现在我可以把这个单元的值设为对应工作表中A1值比如,那么很自然的想法就是='[book2.xls]工程'!$A$1
但是现在我想要批处理这样同类的文件,比如sheet1中还有个单元是工资,在book2中也有对应的工作表叫工资,所以就考虑把"工资"当作参数,用它来表示='[book2.xls]工资'!$A$1中的"工资",这样就可以实现批处理了,比如现在工资所在单元格是B2,但是我输入='[book2.xls]B2'!$A$1后会出错,原因是excel只在book2下查找有没有叫B2的工作表,而没有对其参数分析,所以我现在问一下该怎么样才能实现参数化,使得excel可以识别出"B2"是个参数而不是表名

=INDIRECT("'[book2.xls]"&B2&"'!$A$1")
即可

用INDIRECT

可以用indirect函数,前提是被引用的工作簿必须打开

还可以直接='[book2.xls]工程'!$A$1,必要的时候用替换功能批量替换其中的数据,这样做的好处是被引用的工作簿不需要打开。