Страницы: 1
RSS
Обновить все Сводные таблицы кроме, VBA
 
Коллеги, добрый день,

Помогите пож-та скорректировать код, таким образом, чтобы обновлялись данные во всех таблицах кроме таблицы 'Сводная таблица7' на листе 'Прогноз',
или кроме всего листа 'Прогноз'

стандартно использую команду ActiveWorkbook.RefreshAll, но ради большой экономии времени необходимо промахнуться мимо тяжелого источника данных

или использую код:
Код
Sub RefreshAllPivotTables()
    t = Timer
Dim PT As PivotTable
Dim WS As Worksheet
    For Each WS In ThisWorkbook.Worksheets
        For Each PT In WS.PivotTables
          PT.RefreshTable
        Next PT
    Next WS
    MsgBox "???" & Chr(10) & "???:  " & TimeSerial(0, 0, (Timer - t)) & " ???.", vbInformation + vbMsgBoxSetForeground + vbSystemModal
End Sub

 
Код
Sub RefreshAllPivotTables()
    t = Timer
Dim PT As PivotTable
Dim WS As Worksheet
    For Each WS In ThisWorkbook.Worksheets
        For Each PT In WS.PivotTables
         If PT.Name <>  "Сводная таблица7" then PT.RefreshTable
        Next PT
    Next WS
    MsgBox "???" & Chr(10) & "???:  " & TimeSerial(0, 0, (Timer - t)) & " ???.", vbInformation + vbMsgBoxSetForeground + vbSystemModal
End Sub
Соблюдение правил форума не освобождает от модераторского произвола
 
Цитата
buchlotnik написал:
If PT.Name <>  "Сводная таблица7" then PT.RefreshTable
Результат не заставил себя ждать - обновился в 22 раза быстрее
Большое Вам спасибо!
 
Цитата
Дмитрий Марков: или кроме всего листа 'Прогноз'
если на листе несколько сводных, то обойти ненужные ЛИСТЫ будет ещё быстрее
Код
    For Each WS In ThisWorkbook.Worksheets
        If WS.Name<>"Прогноз" Then
            For Each PT In WS.PivotTables
                PT.RefreshTable
            Next PT
        End If
    Next WS
Изменено: Jack Famous - 23.08.2019 16:14:36
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
Страницы: 1
Наверх