如何用vba实现数据透视表自动筛选

如何用vba实现数据透视表自动筛选,第1张

楼主,每个透视表 *** 作上,根据实际的数据类型的什么,差别比较大的。

这儿也不好说怎么来做~

使用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 怎么刷新数据透视表等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9661446.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-30
下一篇 2023-04-30

发表评论

登录后才能评论

评论列表(0条)

保存