当前位置:数据库 > Excel >>

如何编写Excel数据透视表宏,使之自动完成。

我的一个数据表每天都会有新的数据变动,有可能增加行货这减少行,但是列不变。我想编写一个宏,使之能够自动完成数据透视表的生成,以便省去中间许多环节,只是拖动列的项目就行了。请问这能实现吗? 难点在于每次做透视表时都要重新选取区域,今天和明天可能就不一样了。我试过,但是只能对同一区域做出表来。
答案:不用宏就行。看看我以前回答的:

excel、数据透视表、VBA:怎样才能使数据透视表的数据源区域随记录的增加而自动扩展?
http://zhidao.zzzyk.com/question/52748104.html?si=1

1.先说最常用的方法: 
做数据透视表的时候主要是增加行的记录,增加列的标题的比较少,如果只是增加行的记录的话,直接选择整列作为数据源来做数据透视表就行了。例如数据区域A1:D10.可以选择A:D作为数据区域做数据透视表。 

如果有新增的行记录的话,刷新数据透视表就行了.当然有一个叫"(空白)"的值看着比较碍眼,一般是在行字段列字段筛选里面把它去掉。 

2.即增加行又增加列的情况。也是适用性最好的一种方法。 
这种情况下使用利用公式动态定义数据源。 
例如数据在Sheet1工作表A1:D10。插入-名称-定义,名称:源数据 
引用位置: 
=OFFSET(Sheet1!$A$1,0,0,COUNTA(Sheet1!$A:$A),COUNTA(Sheet1!$1:$1)) 
数据透视表的数据区域,不用鼠标选择,而是输入名称"源数据". 

这个需要注意的地方的是,Sheet1!$A:$A是每行记录都不为空的一列,Sheet1!$1:$1是源数据的标题列,都是连续的中间没有空格的数据. 

3.看大家都比较推崇列表,我也是试了一下.发现插入行能够数据刷新看到更新的数据,但是最后列后面加入的列不能看到。所以使用列表的效果和第一种没有太大区别。还不如直接用第一种方法直接简单。 
4.最后说一下,数据透视表最后一行前插入的行,通过数据刷新能看到; 
最后一列前插入的列,通过数据刷选能看到。 

最后: 
如果是行列都增加推荐第二种方法. 
如果只是增加行的话,用第一种方法就够了。
其他:新建工作表,然后用公式连接,将你必须的东西计入公式计算,应该可以。 

上一个:如何将EXCEL表中同一名称同一类型不同数量的零件进行汇总。
下一个:求助一个EXCEL求和的问题

Oracle
MySQL
Access
SQLServer
DB2
Excel
SQLite
SYBASE
Postgres
如果你遇到数据库难题:
请访问www.zzzyk.com 试试
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,