INDIRECT函数:返回由文本字符串指定的引用。此函数立即对引用进行计算,并显示其内容。中文表达式:INDIRECT(引用文本, [引用类型]),引用的既可以是内部引用(在本工作簿中引用),又可以是外部引用(对另一工作簿的引用),如果是外部引用,所引用的工作簿必须打开,否则将返回引用错误#Ref!;引用的单元格区域不能超出 Excel 允许的最大行数 1048576 或最大列数 16384(XFD),否则也返回 #REF! 错误;引用格式分为A1和R1C1两种格式,R1C1,R 表示“行”,C 表示“列”,R1C1 表示对第一行第一列的引用,即 A1。无论哪种引用方式,如果引用单元格不存在,都将返回错误。KXA检测VBA
下面以实例说明用INDIRECT函数实现跨工作表引用的方法,如图:KXA检测VBA
上图左边是工作表为“台账”中的数据,右图是工作表“1”的数据,如何快速的把台账中的数据引用到工作表“1”中呢,这里只需要在工作表“1”的A2单元格输入数字,就可以快速将后面的数据引用过来,例如:在B2单元格输入=INDIRECT("台账!"&"B"&A2+1),公式的结果会返回工作表“台账”的B2单元格,这里"台账"是工作表名称,"!"代表是工作表引用,"B"代表B列,A2代表引用A2单元格里面的数字,这里的A2单元格输入的是1,意思是引用台账中序号为1的那一行的数据,但实际序号为1的数据在工作表“台账”的第2行,再到后面加一个1。如果是其他行,可以根据相差的行数再做修改。KXA检测VBA
如果要引用工作表“台账”的C2单元格,只需要把字母"B"改成"C",以此类推。当跨工作簿引用时,公式需要加上工作簿的名称,例如:=INDIRECT("[2022.xlsx]台账"&"!B"&A2+1),这里的[2022.xlsx]表示工作簿的名称。KXA检测VBA
需要注意的是:INDIRECT函数的引用形式是绝对引用,当插入、删除行或者列时结果值会发生错误,要更改设置或公式。KXA检测VBA |