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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何用vba实现数据透视表自动筛选相关的知识,希望对你有一定的参考价值。

各位大神,怎么用vba实现数据透视表字段自动筛选,
Sheets("时间-设备").Select ActiveSheet.PivotTables("数据透视表2").PivotCache.Refresh ActiveSheet.PivotTables("数据透视表2").PivotFields("周").CurrentPage = Application.WorksheetFunction.WeekNum(Now()) - 1 ActiveSheet.PivotTables("数据透视表2").PivotFields("车间名称").Select = "'时间-生产线'!R5C1"
End Sub我想筛选“周”字段为(上周),“车间名称”字段选上一个工作表的(A,5)单元格里内容,
可是提示有问题,有没有高手帮帮忙!

  用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内轻松开发出功能强大的自动化程序。
参考技术A

代码如下:


    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

参考技术B 关注一下,顺便做个任务,呵呵 参考技术C 建议你先录制一个手动操作的宏 再查看下就明白了

如何刷新数据透视图

当数据源中的数据更改后,数据透视表默认不会自动刷新。可以通过右击数据透视表,在弹出的快捷菜单中选择“刷新数据”(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.右击数据透视表,在弹出的快捷菜单中选择“表格选项”。弹出“数据透视表选项”对话框。
2.在“数据源选项”下方选择“打开时刷新”。
3.单击“确定”按钮。
Excel 2007:
1.右击数据透视表,在弹出的快捷菜单中选择“数据透视表选项”。弹出“数据透视表选项”对话框。
2.选择“数据”选项卡,选择“打开文件时刷新”。
3.单击“确定”按钮。
这样,以后当更改数据源并保存后,重新打开该工作簿时,数据透视表将自动刷新。
参考技术A F9,或者重新计算都可以

以上是关于如何用vba实现数据透视表自动筛选的主要内容,如果未能解决你的问题,请参考以下文章

Excel数据透视表、切片器如何做?

如何刷新数据透视图

VBA自动刷新数据透视表

Excel数据透视表(图)的切片器,快速筛选数据表格与可视化!

Excle数据透视如何用含有单元格的数据来创建数据透视

VBA代码在数据透视表旁边的列中向下拖动公式