У меня есть шаблон с поддержкой макросов, который включает в себя множество сводных таблиц, которые необходимо обновить вручную (включая изменение источника)
Несколько дней назад я работал с этим решением для кода, которое на самом деле работало так хорошо
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), но я все еще вижу это раздражающее сообщение.
Я также проверил, и ни одна из сводных таблиц, ни Sheet не изменили свое имя, поэтому я думаю, что это не одна из проблем.
Кроме того, я изменил диапазоны для включения и игнорирования заголовков таблицы и до сих пор ничего.
Также (x3) те же диапазоны используются в других модулях для выполнения некоторого форматирования ячеек
Отладчик всегда останавливается на первой сводной таблице
sh.PivotTables("PivotTable1"). _
ChangePivotCache ActiveWorkbook. _
PivotCaches.Create(SourceType:=xlDatabase, SourceData:="CE_2_Table")
Есть идеи, что я упускаю или неправильно делаю или изменил, не заметив?
Спасибо за ваше время.