VBA自动刷新数据透视表
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了VBA自动刷新数据透视表相关的知识,希望对你有一定的参考价值。
请高人帮助修改这段代码
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)Dim sh2 As WorksheetSet sh2 = Sheets("sheet4")If Sh.Name = "Sheet1" Then sh2.PivotTables("数据透视表1").PivotCache.RefreshEnd Sub以上代码是可以实时刷新'数据透视表'的
数据源在"Sheet1"里面,"Sheet1"表是密码保护的密码"1234‘","数据透视表"在"Sheet4"里面。
要求:"数据透视表"的工作表也是用密码"1234“保护的情况下,怎样用上面的代码在添加语句能够实现自动解开"数据透视表"的工作表保护后自动刷新"数据透视表",然后在自动用密码"1234"保护"数据透视表"的工作表。
谢谢!
此问题已经解决了,下面代码是我录制的宏改进后的代码,经测试通过!
下面代码放在数据透视表所在的Sheet工作表代码窗口里。
Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
Sheets("Sheet1").Select '数据透视表所在的Sheet1工作表
Range("A3").Select'透视表中的任一单元格
ActiveSheet.Unprotect Password:="1234"'密码保护工作表
ActiveSheet.PivotTables("数据透视表1").PivotCache.Refresh'自动刷新透视表
ActiveSheet.Protect Password:="1234", DrawingObjects:=True, Contents:=True, Scenarios:=True, AllowSorting:=True, AllowFiltering:=True, AllowUsingPivotTables:=True
End Sub
一、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 透视表的数据本身就是不可以更改的,只能通过更改数据源才能得以更新,还要为它设置密码不是多此一举吗?只要解锁工作表1就行了。
以下代码功放在表4(数据透视表所在表)
Private Sub Worksheet_Activate()'用这个事件效率更高,当表4激活时刷新数据透视表
sheets(1).Unprotect Password:="1234"
sheets(4).PivotTables("数据透视表1").PivotCache.Refresh
sheets(1).protect Password:="1234"
End Sub追问
您好!非常感谢您的回答!
可能是我没说太清楚,问题是这样的:我这工作簿设计了一个录入页面单击按钮自动保存至源数据表,源数据表是密码保护的而且源数据表也是用密码隐藏看见的,
所以数据透视表必须得密码保护起来,目的就是不想让别人在数据透视表里操作只能看,有些数据不能让别人看见。
sheets(4).Unprotect Password:="1234" 这个就是解锁的啊不会活用啊
一定要死答案
Excel数据透视表怎么刷新数据源
参考技术A在Excel工作表中进行了相关数据的编辑更改后,数据透视表不会自动更新。那么我们该如何启用数据透视表的自动更新或者更改来源呢?
方法和步骤
一、自动更新
1、点击数据透视表中的任意单元格,鼠标右键选择数据透视表选项。
2、在对话框中点击选择数据选项卡,勾选打开文件时刷新数据选项,设置好后点击确定按钮即可。
二、更改来源
先将鼠标置于数据透视表区域任一单元格中,然后点击上面的“更改数据源”。接着重新选定数据区域,点击确定后回到数据透视表界面,数据源就这样刷新完成了。
以上是关于VBA自动刷新数据透视表的主要内容,如果未能解决你的问题,请参考以下文章