我有一个启用宏的模板,其中包含很多需要手动更新的数据透视表(包括源数据更改) 几天前,我正在使用此代码解决方案,实际上效果很好
Sub Button12_Click()
Dim sh As Worksheet
Set sh = ThisWorkbook.Sheets("Pivots")
'CE OP Pivot Tables
sh.PivotTables("PivotTable1"). _
ChangePivotCache ActiveWorkbook. _
PivotCaches.Create(SourceType:=xlDatabase, SourceData:="CE_2_Table")
sh.PivotTables("PivotTable1").RefreshTable
sh.PivotTables("PivotTable2"). _
ChangePivotCache ActiveWorkbook. _
PivotCaches.Create(SourceType:=xlDatabase, SourceData:="CE_2_Table")
sh.PivotTables("PivotTable2").RefreshTable
sh.PivotTables("PivotTable3"). _
ChangePivotCache ActiveWorkbook. _
PivotCaches.Create(SourceType:=xlDatabase, SourceData:="CE_2_Table")
sh.PivotTables("PivotTable3").RefreshTable
sh.PivotTables("PivotTable4"). _
ChangePivotCache ActiveWorkbook. _
PivotCaches.Create(SourceType:=xlDatabase, SourceData:="CE_2_Table")
sh.PivotTables("PivotTable4").RefreshTable
sh.PivotTables("PivotTable5"). _
ChangePivotCache ActiveWorkbook. _
PivotCaches.Create(SourceType:=xlDatabase, SourceData:="CE_2_Table")
sh.PivotTables("PivotTable5").RefreshTable
sh.PivotTables("PivotTable6"). _
ChangePivotCache ActiveWorkbook. _
PivotCaches.Create(SourceType:=xlDatabase, SourceData:="CE_2_Table")
sh.PivotTables("PivotTable6").RefreshTable
sh.PivotTables("PivotTable7"). _
ChangePivotCache ActiveWorkbook. _
PivotCaches.Create(SourceType:=xlDatabase, SourceData:="CE_2_Table")
sh.PivotTables("PivotTable7").RefreshTable
sh.PivotTables("PivotTable27"). _
ChangePivotCache ActiveWorkbook. _
PivotCaches.Create(SourceType:=xlDatabase, SourceData:="CE_2_Table")
sh.PivotTables("PivotTable27").RefreshTable
'SLED Pivot Tables
sh.PivotTables("PivotTable8"). _
ChangePivotCache ActiveWorkbook. _
PivotCaches.Create(SourceType:=xlDatabase, SourceData:="SLED_2_Table")
sh.PivotTables("PivotTable8").RefreshTable
sh.PivotTables("PivotTable9"). _
ChangePivotCache ActiveWorkbook. _
PivotCaches.Create(SourceType:=xlDatabase, SourceData:="SLED_2_Table")
sh.PivotTables("PivotTable9").RefreshTable
sh.PivotTables("PivotTable10"). _
ChangePivotCache ActiveWorkbook. _
PivotCaches.Create(SourceType:=xlDatabase, SourceData:="SLED_2_Table")
sh.PivotTables("PivotTable10").RefreshTable
sh.PivotTables("PivotTable11"). _
ChangePivotCache ActiveWorkbook. _
PivotCaches.Create(SourceType:=xlDatabase, SourceData:="SLED_2_Table")
sh.PivotTables("PivotTable11").RefreshTable
sh.PivotTables("PivotTable12"). _
ChangePivotCache ActiveWorkbook. _
PivotCaches.Create(SourceType:=xlDatabase, SourceData:="SLED_2_Table")
sh.PivotTables("PivotTable12").RefreshTable
sh.PivotTables("PivotTable13"). _
ChangePivotCache ActiveWorkbook. _
PivotCaches.Create(SourceType:=xlDatabase, SourceData:="SLED_2_Table")
sh.PivotTables("PivotTable13").RefreshTable
sh.PivotTables("PivotTable14"). _
ChangePivotCache ActiveWorkbook. _
PivotCaches.Create(SourceType:=xlDatabase, SourceData:="SLED_2_Table")
sh.PivotTables("PivotTable14").RefreshTable
sh.PivotTables("PivotTable30"). _
ChangePivotCache ActiveWorkbook. _
PivotCaches.Create(SourceType:=xlDatabase, SourceData:="SLED_2_Table")
sh.PivotTables("PivotTable30").RefreshTable
'CA Pivot tables
sh.PivotTables("PivotTable15"). _
ChangePivotCache ActiveWorkbook. _
PivotCaches.Create(SourceType:=xlDatabase, SourceData:="CA_2_Table")
sh.PivotTables("PivotTable15").RefreshTable
sh.PivotTables("PivotTable16"). _
ChangePivotCache ActiveWorkbook. _
PivotCaches.Create(SourceType:=xlDatabase, SourceData:="CA_2_Table")
sh.PivotTables("PivotTable16").RefreshTable
sh.PivotTables("PivotTable17"). _
ChangePivotCache ActiveWorkbook. _
PivotCaches.Create(SourceType:=xlDatabase, SourceData:="CA_2_Table")
sh.PivotTables("PivotTable17").RefreshTable
sh.PivotTables("PivotTable18"). _
ChangePivotCache ActiveWorkbook. _
PivotCaches.Create(SourceType:=xlDatabase, SourceData:="CA_2_Table")
sh.PivotTables("PivotTable18").RefreshTable
sh.PivotTables("PivotTable19"). _
ChangePivotCache ActiveWorkbook. _
PivotCaches.Create(SourceType:=xlDatabase, SourceData:="CA_2_Table")
sh.PivotTables("PivotTable19").RefreshTable
sh.PivotTables("PivotTable20"). _
ChangePivotCache ActiveWorkbook. _
PivotCaches.Create(SourceType:=xlDatabase, SourceData:="CA_2_Table")
sh.PivotTables("PivotTable20").RefreshTable
sh.PivotTables("PivotTable21"). _
ChangePivotCache ActiveWorkbook. _
PivotCaches.Create(SourceType:=xlDatabase, SourceData:="CA_2_Table")
sh.PivotTables("PivotTable21").RefreshTable
sh.PivotTables("PivotTable31"). _
ChangePivotCache ActiveWorkbook. _
PivotCaches.Create(SourceType:=xlDatabase, SourceData:="CA_2_Table")
sh.PivotTables("PivotTable31").RefreshTable
'CE Future POs
sh.PivotTables("PivotTable22"). _
ChangePivotCache ActiveWorkbook. _
PivotCaches.Create(SourceType:=xlDatabase, SourceData:="CE_Future_POs_Table")
sh.PivotTables("PivotTable22").RefreshTable
sh.PivotTables("PivotTable23"). _
ChangePivotCache ActiveWorkbook. _
PivotCaches.Create(SourceType:=xlDatabase, SourceData:="CE_Future_POs_Table")
sh.PivotTables("PivotTable23").RefreshTable
sh.PivotTables("PivotTable24"). _
ChangePivotCache ActiveWorkbook. _
PivotCaches.Create(SourceType:=xlDatabase, SourceData:="CE_Future_POs_Table")
sh.PivotTables("PivotTable24").RefreshTable
sh.PivotTables("PivotTable25"). _
ChangePivotCache ActiveWorkbook. _
PivotCaches.Create(SourceType:=xlDatabase, SourceData:="CE_Future_POs_Table")
sh.PivotTables("PivotTable25").RefreshTable
sh.PivotTables("PivotTable26"). _
ChangePivotCache ActiveWorkbook. _
PivotCaches.Create(SourceType:=xlDatabase, SourceData:="CE_Future_POs_Table")
sh.PivotTables("PivotTable26").RefreshTable
sh.PivotTables("PivotTable28"). _
ChangePivotCache ActiveWorkbook. _
PivotCaches.Create(SourceType:=xlDatabase, SourceData:="CE_Future_POs_Table")
sh.PivotTables("PivotTable28").RefreshTable
sh.PivotTables("PivotTable29"). _
ChangePivotCache ActiveWorkbook. _
PivotCaches.Create(SourceType:=xlDatabase, SourceData:="CE_Future_POs_Table")
sh.PivotTables("PivotTable29").RefreshTable
sh.PivotTables("PivotTable32"). _
ChangePivotCache ActiveWorkbook. _
PivotCaches.Create(SourceType:=xlDatabase, SourceData:="CE_Future_POs_Table")
sh.PivotTables("PivotTable32").RefreshTable
End Sub
但是从今天早上开始,每当我单击运行该宏的按钮时,我都会收到相同的消息
运行时错误5无效的过程调用或参数
到目前为止,我已经尝试使用表而不是范围(如您在发布的代码中看到的。而且,范围名称与_Table部分完全相同),但是仍然看到令人讨厌的消息。
我也进行了验证,数据透视表和工作表均未更改名称,因此我认为这不是问题之一。
此外,我更改了范围以包括和忽略表的标题,但一无所获。
另外(x3)相同的范围也用于另一个模块,以对单元格执行一些格式化
调试器始终在第一个数据透视表上停止
sh.PivotTables("PivotTable1"). _
ChangePivotCache ActiveWorkbook. _
PivotCaches.Create(SourceType:=xlDatabase, SourceData:="CE_2_Table")
有什么主意我想念的东西,做错了什么或没有注意到而改变了吗?
感谢您的时间。
答案 0 :(得分:0)
我终于找到了问题。我有一些切片器使代码失败。我要做的就是擦除它们,然后潜水艇再次工作