excel动态获取sheet页单元格内容

1、问题描述

如下图所示,名称列可能是动态赋值的,名称列的内容有对应新的sheet页,如名称为PJ1及其PJ1的sheet页,最终需要获取PJ1的sheet页的B1单元格的内容。

excel动态获取sheet页单元格内容_第1张图片

 如下图所示,是要获取PJ1的sheet页的B1的值。

excel动态获取sheet页单元格内容_第2张图片

 2、解决办法

如下图所示,使用excel的ADDRESS()函数,可以动态拼接出要获取所在的sheet页B1单元格的地址,使用excel的INDIRECT()函数,获取动态地址对应单元格的内容。

excel动态获取sheet页单元格内容_第3张图片

 如上图所示,ADDRESS(1,2,1,TRUE,B4),可以拼接出'PJ1'!$B$1动态地址;使用INDIRECT(ADDRESS(1,2,1,TRUE,B4)),可以获取动态地址'PJ1'!$B$1,即名称PJ1的sheet页对应B1单元格的内容。

3、函数说明

(1)、ADDRESS(1,2,1,TRUE,B4),即获取当前sheet页B4单元格的值(即PJ1)对应的sheet页中的第1行第2列的值动态地址,即'PJ1'!$B$1

ADDRESS(row_num, column_num, [abs_num], [A1], [sheet_text])
//row_num     必需。 一个数值,指定要在单元格引用中使用的行号。
//column_num  必需。 一个数值,指定要在单元格引用中使用的列号。
//abs_num     可选。 一个数值,指定要返回的引用类型。
              //返回的引用类型            
              //1 或省略,绝对值
              //2 绝对行号,相对列标
              //3 相对行号,绝对列标
              //4 相对值
//A1         可选。 一个逻辑值,指定 A1 或 R1C1 引用样式。
              //在 A1 样式中,列和行将分别按字母和数字顺序添加标签。 
              //在 R1C1 引用样式中,列和行均按数字顺序添加标签。 
              //如果参数 A1 为 TRUE 或被省略,则 ADDRESS 函数返回 A1 样式引用;
              //如果为 FALSE,则 ADDRESS 函数返回 R1C1 样式引用。
              //如 A1 样式为$B$1,即获取B1单元格的值。
              //如 R1C2  样式,即获取第1行第2列对应单元格的值。
//sheet_text  可选。 一个文本值,指定引用的sheet页的名称。 

 注意:excel中$B$1表示列和行绝对引用,即将此内容复制到其他单元格或下拉单元格时,还一直获取的是B1单元格的值;$B1表示B列是绝对引用,不是绝对应用,单元格下拉时,可能会变成B2、B3等,用于设置ADDRESS()的abs_num参数,即设置返回值引用类型。

(2)、INDIRECT('PJ1'!$B$1),即获取名称为PJ1的sheet页中B1单元格的值。

你可能感兴趣的:(问题及示例,Windows相关,文件操作相关,excel)