楼主,每个透视表 *** 作上,根据实际的数据类型的什么,差别比较大的。
这儿也不好说怎么来做~
使用Excel 2010或2013,录制宏,然后 *** 作下透视表,就能看到具体怎么 *** 作了。
2007有Bug,不要用的好, *** 作的过程好多看不到。
我也做了好些自动筛选的,贴出来,你看下吧,不细说了,可以实现的。
'创建图表
Set cht = wbdSheets("PivotTable")ChartObjectsAdd(wbdSheets("PivotTable")Cells(1, "J")Left + 8, wbdSheets("PivotTable")Cells(1, "J")Top, 708, 284)
chtName = "图表1"
chtChartChartWizard Source:=tbTableRange1
chtChartSetElement (msoElementChartTitleAboveChart)
k = 0
'根据刷新的数据型号,判断取的不良Code
For Each lotype In tbPivotFields("Type")PivotItems
lotype_1 = lotype
tbPivotFields("Type")CurrentPage = lotype_1
'这个地方就是筛选设定的~~~
If UBound(Filter(pdt, lotype)) = 0 Then
tbPivotFields("DGS%")Orientation = xlHidden
tbPivotFields("GCS%")Orientation = xlHidden
tbPivotFields("GGS%")Orientation = xlHidden
tbPivotFields("Glass Qty")Position = 2
With chtChart
ChartTitleText = lotype_1 & "_Tray别Yield确认@Inv%"
ApplyChartTemplate ( _
"F:\Sputter Daily Report自动化\1图表模板\Tray_Yield_TNcrtx")
End With
Else
tbPivotFields("Inv%")Orientation = xlHidden
tbPivotFields("Glass Qty")Position = 4
With chtChart
ChartTitleText = lotype_1 & "_Tray别Yield确认@DGS/GCS/GGS%"
ApplyChartTemplate ( _
"F:\Sputter Daily Report自动化\1图表模板\Tray_Yield_ADScrtx")
End With
End If
excel中刷新数据透视表的两种方法:
1、手工刷新
(1)右键菜单,
透视表内任意单元格鼠标右键-----刷新数据;
(2)使用数据透视表工具栏上的刷新按钮;
(3)
添加刷新全部透视表工具按钮:
(31)直接在透视表工具栏选项添加按钮---添加或删除按钮---数据透视表---全部刷新;
(32)自定义工具栏选项按钮:自定义---命令---数据---全部刷新---将此按钮拖放到工具栏上,即可直接点击此按钮以实现整个工作簿内透视表数据刷新。
*** 作小技巧:窗口--新建窗口,此时会打开一个同样的工作簿,窗口中选择“与工作簿并排比较”,这样可在并排的两个工作簿中将数据源与透视表刷新进行直观对比,同理在这里你可以试试隐藏窗口哦!记得在excel中是可以设置打开一个存放个人宏的工作簿,而且是一打开就隐藏了窗口了。
2、自动刷新---通过设置透视表属性
(1)打开时刷新。顾名思义---打开工作表时,就可以刷新数据透视表。
(2)定时刷新。可以设置刷新频率的时间,但是仅适应于外部数据源所创建的数据透视表。
*** 作:如何创建1个基于外部数据源创建数据透视表,
“数据”菜单---导入外部数据---导入数据---选中外部数据源---选择表格---导入数据---创建数据透视表---完成。
3、自动刷新---使用vba代码实现自动刷新透视表
31激活工作表时刷新
打开透视表代码窗口输入:
private
sub
worksheet_activate()
---当激活这个工作表时执行下列语句命令
activesheetpivottables("数据透视表")pivotcacherefresh
---更新名为“数据透视表”的数据透视表
注意:数据透视表的名在那里呢?也不要把它与工作表的名称混为一团,每一个数据透视表创建时都是有它自已的名称的,并且它是可以改动的
使用录制宏的方法获得代码确实是好的方法,正确、全面。
但是根据实际情况,需要修改一下,因为 ActiveSheet 是经常变化的,改成以下语法试试:
Sheet1PivotTables("数据透视表")PivotCacheRefresh
或者
Worksheets("Sheet1")PivotTables("数据透视表")PivotCacheRefresh
以上 Sheet1 要根据你的数据透视表所在工作表改动一下。
如以下,把当前表中的A1到D100的数据在“汇总”这个表中建两个数据透视表(A1位置,D1位置各一个),表名分别为mypc001和mypc002,如果要更多,把下面代码再复制,要几个透视表就复制几个,然后改下pv2,mypv002改到pv3,mypv003或其它名字,只要不与之前的同名就可以。
Private Sub CommandButton1_Click()
Dim pv1 As PivotTable
Set pv1 = Worksheets("汇总")PivotTableWizard(SourceType:=xlDatabase, SourceData:=Range("a1:d100"), TableDestination:=Worksheets("汇总")Range("a1"), tablename:="mypv001")
pv1AddFields RowFields:=Array("xm", "日期")
pv1AddDataField pv1PivotFields("用时"), "总用时", xlSum
Dim pv2 As PivotTable
Set pv2 = Worksheets("汇总")PivotTableWizard(SourceType:=xlDatabase, SourceData:=Range("a1:d100"), TableDestination:=Worksheets("汇总")Range("d1"), tablename:="mypv002")
pv2AddFields RowFields:=Array("xm", "日期")
pv2AddDataField pv2PivotFields("产量"), "总产量", xlSum
End Sub
Sub 小按钮()
Sheet1PivotTables("数据透视表1")PivotCacheRefresh
End Sub
透视表所在工作表pivotables("透视表名称")pivotcacherefresh
Private Sub Worksheet_SelectionChange(ByVal Target As Range)Sheet1PivotTables("数据透视表1")PivotCacheRefresh
End Sub
在源数据中定义这个更好,每修改完一个单元格数据后,自动刷新透视表。
当数据源中的数据更改后,数据透视表默认不会自动刷新。可以通过右击数据透视表,在d出的快捷菜单中选择“刷新数据”(Excel 2003)或“刷新”(Excel 2007)来手动刷新数据透视表。如果需要自动刷新数据透视表,可以用下面的两种方法:
一、VBA代码
用一段简单的VBA代码,可以实现如下效果:当数据源中的数据更改后,切换到包含数据透视表的工作表中时,数据透视表将自动更新。假如包含数据透视表的工作表名称为“Sheet1”,数据透视表名称为“数据透视表1”。
1按Alt+F11,打开VBA编辑器。
2在“工程”窗口中,双击包含数据透视表的工作表,如此处的“Sheet1”表。
3在右侧代码窗口中输入下列代码:
Private Sub Worksheet_Activate()
Sheets("Sheet1")PivotTables("数据透视表1")RefreshTableEnd Sub
4关闭VBA编辑器。
二、打开工作簿时自动刷新数据透视表
Excel 2003:
1右击数据透视表,在d出的快捷菜单中选择“表格选项”。d出“数据透视表选项”对话框。
2在“数据源选项”下方选择“打开时刷新”。
3单击“确定”按钮。
Excel 2007:
1右击数据透视表,在d出的快捷菜单中选择“数据透视表选项”。d出“数据透视表选项”对话框。
2选择“数据”选项卡,选择“打开文件时刷新”。
3单击“确定”按钮。
这样,以后当更改数据源并保存后,重新打开该工作簿时,数据透视表将自动刷新。
以上就是关于如何用vba实现数据透视表自动筛选全部的内容,包括:如何用vba实现数据透视表自动筛选、如何可以一次过刷新所有的数据透视表、vba 怎么刷新数据透视表等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)