楼主,每个透视表操作上,根据实际的数据类型的什么,差别比较大的。
这儿也不好说怎么来做~
使用Excel 2010或2013,录制宏,然后操作下透视表,就能看到具体怎么操作了。
2007有Bug,不要用的好,操作的过程好多看不到。
我也做了好些自动筛选的,贴出来,你看下吧,不细说了,可以实现的。
'创建图表
Set cht = wbd.Sheets("PivotTable").ChartObjects.Add(wbd.Sheets("PivotTable").Cells(1, "J").Left + 8, wbd.Sheets("PivotTable").Cells(1, "J").Top, 708, 284)
cht.Name = "图表1"
cht.Chart.ChartWizard Source:=tb.TableRange1
cht.Chart.SetElement (msoElementChartTitleAboveChart)
k = 0
'根据刷新的数据型号,判断取的不良Code
For Each lotype In tb.PivotFields("Type").PivotItems
lotype_1 = lotype
tb.PivotFields("Type").CurrentPage = lotype_1
'这个地方就是筛选设定的~~~
If UBound(Filter(pdt, lotype)) = 0 Then
tb.PivotFields("DGS%").Orientation = xlHidden
tb.PivotFields("GCS%").Orientation = xlHidden
tb.PivotFields("GGS%").Orientation = xlHidden
tb.PivotFields("Glass Qty").Position = 2
With cht.Chart
.ChartTitle.Text = lotype_1 & "_Tray别Yield确认@Inv%"
.ApplyChartTemplate ( _
"F:\Sputter Daily Report自动化\1.图表模板\Tray_Yield_TN.crtx")
End With
Else
tb.PivotFields("Inv%").Orientation = xlHidden
tb.PivotFields("Glass Qty").Position = 4
With cht.Chart
.ChartTitle.Text = lotype_1 & "_Tray别Yield确认@DGS/GCS/GGS%"
.ApplyChartTemplate ( _
"F:\Sputter Daily Report自动化\1.图表模板\Tray_Yield_ADS.crtx")
End With
End If
用vba实现数据透视表自动筛选:
Sub 宏1()
k = Cells(65536, 1).End(4).Row
For i = 4 To 1 Step -1
ActiveSheet.Range("$A$3:$D$" & k).AutoFilter Field:=i, Criteria1:=Cells(1, i).Text
If Columns(1).Count < 2 Then
ActiveSheet.Range("$A$3:$D$" & k).AutoFilter Field:=i
End If
Next i
End Sub
VBA:Visual Basic for Applications(VBA)是Visual Basic的一种宏语言,是微软开发出来在其桌面应用程序中执行通用的自动化(OLE)任务的编程语言。主要能用来扩展Windows的应用程式功能,特别是Microsoft Office软件。也可说是一种应用程式视觉化的Basic 脚本。该语言于1993年由微软公司开发的的应用程序共享一种通用的自动化语言--------Visual Basic For Application(VBA),实际上VBA是寄生于VB应用程序的版本。微软在1994年发行的Excel5.0版本中,即具备了VBA的宏功能。
由于微软Office软件的普及,人们常见的办公软件Office软件中的Word、Excel、Access、Powerpoint都可以利用VBA使这些软件的应用更高效率,例如:通过一段VBA代码,可以实现画面的切换;可以实现复杂逻辑的统计(比如从多个表中,自动生成按合同号来跟踪生产量、入库量、销售量、库存量的统计清单)等。
掌握了VBA,可以发挥以下作用:
1.规范用户的操作,控制用户的操作行为;
2.操作界面人性化,方便用户的操作;
3.多个步骤的手工操作通过执行VBA代码可以迅速的实现;
4.实现一些VB无法实现的功能。
5.用VBA制做EXCEL登录系统。
6.利用VBA可以Excel内轻松开发出功能强大的自动化程序。
Sub 数据透视表自动筛选()
k = Cells(65536, 1).End(4).Row
For i = 4 To 1 Step -1
ActiveSheet.Range("$A$1:$H$" & k).AutoFilter Field:=i, Criteria1:=Cells(1, i).Text
If Columns(1).Count < 2 Then
ActiveSheet.Range("$A$1:$H$" & k).AutoFilter Field:=i
End If
Next i
End Sub
数据区域范围自己调整。
是EXCEL自带的数据透视表不能满足你的要求吗?说实话,有时我也有这种感觉,也想自己用VBA编写功能更强大的数据透视表代码,但实践下来有如下感觉,希望对你有用: 1、代码量太大,如果不是很广普的功能,实现起来总有得不偿失感觉