在论坛也泡了很久了,总是偷学,现在有点小收获,和大家一起分享. 可能并不算新技巧,但对新手应该很容易懂,我是新手,我不会VB,所以方法有些笨,高手看了不要笑哦! 经常要做数据透视表,样子格式都差不多,总要重复设置,很麻烦,后来想了个办法. 1.选择录制宏 2.在准备放数据透视表的SHEET中选择数据透视表的向导(这点很重要) 3.在选择数据源区域时,按浏览,选择你的数据源 注意两点:A.数据源尽量单独一个sheet B.数据透视表向导的数据区域中要详细显示(如:明细表!$A$1:$Q$1559) 4.然后就是按你平时方法一样做,就是在数据表显示位置时,要选现有工作表,并选定一个单元格 5.透视表生成后,你一般还喜欢做什么样的格式设置呀等等,全部做完后,就可以停止录制宏了. 6.在任意单元格输入公式1=COUNTA(明细表!A:A)----->取数据源的行数 公式2=COUNTA(明细表!1:1)------>取数据源的列数 7.通过VB编辑器,打开刚才录制的宏 在开头加几句代码: R = ActiveCell.CurrentRegion.Rows.Count C = ActiveCell.CurrentRegion.Columns.Count 'R/C是任意的,没啥意思,上面的话好像是说给R赋赋予行数的属性,给C赋予列数的属性,(这是我借鉴来的,自己也不太明白,也等高手指点呢!) Sheets("数据透视表").Select Range("E3").Select R = Range("E3") C = Range("E4") 'E3 / E4 / 数据透视表等,就是刚才放行数和列数的地方,目的就是让R=行数,C=列数 ★☆★☆★☆★☆★☆★☆★☆★☆ 对于新手最重要的部分到了, 录制的宏中有这样一句代码: ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _ "明细表!R1C1:R1559C9").CreatePivotTable TableDestination:=Range("C4"), _ TableName:="数据透视表2" 把红字部分改成:SourceData:= "明细表!R1C1:R" & R & "C" & C 好了,存盘,一个自动式数据透视表就完成!赶快去试试吧! 评点: 适合数据源项目相同,行数不同的表,如果有新增的项目,不能自动在数据透视表中出现,但已经包含在数据源中了,因此只要重新选择一下就可以了! 呼呼,终于写完了,当个有知识的楼主可真不容易,再次感谢许多无偿丰献的楼主.
ZQzR53NI.rar
(15.94 KB, 下载次数: 664)
附件中,我是做了一个控件,以实现,按下按钮,报表生成的愿望!! 同时还录制了一个删除的宏,将偷懒进行到底!! 有什么更好的改进方法,还希望大家一起讨论!一起进步!将偷懒进行到底!!
[此贴子已经被作者于2007-11-30 10:29:26编辑过] |