数据透视表 使用VBA代码后为什么不能自动刷新是怎么回事 10
一、VBA代码用一段简单的VBA代码,可以实现如下效果:当数据源中的数据更改后,切换到包含数据透视表的工作表中时,数据透视表将自动更新。假如包含数据透视表的工作表名称为“...
一、VBA代码
用一段简单的VBA代码,可以实现如下效果:当数据源中的数据更改后,切换到包含数据透视表的工作表中时,数据透视表将自动更新。假如包含数据透视表的工作表名称为“Sheet1”,数据透视表名称为“数据透视表1”。
1.按Alt+F11,打开VBA编辑器。
2.在“工程”窗口中,双击包含数据透视表的工作表,如此处的“Sheet1”表。
3.在右侧代码窗口中输入下列代码:
Private Sub Worksheet_Activate()
Sheets("Sheet1").PivotTables("数据透视表1").RefreshTable
End Sub
保存 退出。
然而 修改源数据后与之对应的数据透视表 仍然不能自动更新,请问如何解决? 展开
用一段简单的VBA代码,可以实现如下效果:当数据源中的数据更改后,切换到包含数据透视表的工作表中时,数据透视表将自动更新。假如包含数据透视表的工作表名称为“Sheet1”,数据透视表名称为“数据透视表1”。
1.按Alt+F11,打开VBA编辑器。
2.在“工程”窗口中,双击包含数据透视表的工作表,如此处的“Sheet1”表。
3.在右侧代码窗口中输入下列代码:
Private Sub Worksheet_Activate()
Sheets("Sheet1").PivotTables("数据透视表1").RefreshTable
End Sub
保存 退出。
然而 修改源数据后与之对应的数据透视表 仍然不能自动更新,请问如何解决? 展开
展开全部
1)如果数据透视表名被修改,不再是"数据透视表1",则执行不了。可改成如下代码,不论多少透视表,叫什么名,都能刷新。
Private Sub Worksheet_Activate()
Dim myPivot As PivotTable
For Each myPivot In Me.PivotTables
myPivot.RefreshTable
Next
Set myPivot = Nothing
End Sub
2)数据透视表的数据源是否被设为固定区域了?最好将数据源设为指定的名称。之前区域定义为名称,行数可自动变化,如新建名称rngPivot, =offset(sheet2!$A$1,0,0,counta(sheet2!A:A),counta(sheet2!1:1))
3)如果还不行,那就是动作响应被关闭了,需要恢复一下。
可在立即窗口执行如下代码:Application.EnableEvents = True
Private Sub Worksheet_Activate()
Dim myPivot As PivotTable
For Each myPivot In Me.PivotTables
myPivot.RefreshTable
Next
Set myPivot = Nothing
End Sub
2)数据透视表的数据源是否被设为固定区域了?最好将数据源设为指定的名称。之前区域定义为名称,行数可自动变化,如新建名称rngPivot, =offset(sheet2!$A$1,0,0,counta(sheet2!A:A),counta(sheet2!1:1))
3)如果还不行,那就是动作响应被关闭了,需要恢复一下。
可在立即窗口执行如下代码:Application.EnableEvents = True
追问
您好,朋友: 第一个试了 不可以;第二个,数据源是否被设为固定区域,如何查看哪,数据是别人给的;第三个:立即窗口怎么执行Application.EnableEvents = True,黏贴进去保存就可以吗?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询