楼主 gouweicao78 |
Q:数据透视表占据的单元格是会随着透视表的筛选、更新等操作而改变,怎样才能取得其占据的单元格地址范围呢? A:可以利用宏表4.0函数GET.PIVOT.TABLE来取得。 如图,按CTRL+F3定义名称PivotAddress:
然后在L1单元格输入某个数据透视表区域的单元格地址,比如:J13 在L2单元格输入公式:
可得到该透视表占据的单元格范围(包含“页眉”,即透视表的“页”字段),如果不想包含“页”字段,则将GET.PIVOT.TABLE的第一个参数改为11即可。 为防止输入的单元格不在透视表区域内,可以加判定容错,比如:
得到数据透视表的单元格地址范围(宏表函数).rar |
2楼 gouweicao78 |
补充: 函数语法 GET.PIVOT.TABLE(type_num,pivot_table_name) 第一个参数为数字1~22时分别代表的含义: 1 以文字常量返回最后更新数据透视表者的名字。 2 以一系列数返回数据透视表最后更新的时间。 3 返回文字常量水平数组,代表数据透视表中反有的字段。 4 返回一个整数,代表数据透视表中字段的数。 5 返回文字常量水平数组,代表数据透视表中所有可见的字段(行,列,页或数据)。 6 返回文字常量水平数组,代表数据透视表中所隐藏的字段,如果没有隐藏字段,返回#N/A。 7 返回文字常量水平数组,代表当前做为行字段显示在数据透视表中的所有字段的名字。如果没有行字段,返回 #N/A。 8 返回文字常量水平数组,代表当前做为列字段显示在数据透视表中的所有字段的名字,如果没有列字段,返回#N/A 。 9 返回文字常量水平数组,代表当前做为页字段显示在数据透视表中的所有字段的名字,如果没有页字段,返回#N/A 。 10 返回文字常量水平数组,代表当前做为数据字段显示在数据透视表中的所有字段的名字,如果没有数据字段,返回#N/A。 11 返回最小的以数据透视表和所有页眉(不包括页的页眉) 为界的矩形引用。做为文本返回。 12 返回最小的以数据透视表和所有页眉(包括页的页眉) 为界的矩形引用。做为文本返回。 13 做为文字返回行页眉区域的引用。行页眉区域包括每行字段页眉和每行字段所有的项,如果不存在行页眉,返回 #N/A。 14 做为文字返回列页眉区域的引用。 列页眉区域包括每列字段页眉和每列字段所有的项,如果不存在列页眉,返回#N/A。 15 做为文字返回数据页眉区域的引用。 数据页眉区域包括数据字段页眉和数据行/列中所有的页眉,如果不存在数据字段,返回#N/A。 16 做为文字返回所有页的页眉的引用。 17 做为文字返回数据透视表数据区域的引用。 18 如果设置数据透视表显示行求和,返回TRUE。 19 如果设置数据透视表显示列求和,返回TRUE。 20 如果用户用数据透视表保存数据,返回TRUE。 21 如果设置数据透视表选择主元素时自动套用格式,返回TRUE。 22 返回数据透视表的数据源,返回信息的种类决定于数据源:如果数据源是Microsoft Excel数据清单或数据库,单元格引用做为文字返回。如果数据源是外部数据源,返回一个数组。每行由SQL 接字符串和当排序字符串被分成200个字符段时的剩余元素组成。 如果数据源是多垂联合计算范围,返回一个二维数组,每行由引用和相关的页字段项组成。如果数据源是另一个数据透视表,返回以上三种信息类型的其中一种. Pivot_table_name 是一个包含想要信息的字段所在数据透视表的名字。如果被省略,使用包含活动单元格的数据透视表。 注:当pivot_table_name不是活动表中一个有效的数据透视表名字,并且活动单元格不在PivotTable中,返回错误值#VALUE! |
3楼 biaotiger1 |
一个宏表函数GET.PIVOT.TABLE有这么多的含义啊 |
4楼 omnw |
草版的函数就是牛 |
5楼 水星钓鱼 |
不用VBA的达人 |