Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Страницы: 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
Каждому For свой Next
 
Цитата
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 Авг 2019 16:14:36
«Тот, кто несет фонарь, спотыкается чаще, чем тот, кто идет следом.»
Иоганн Пауль Фридрих Рихтер
Страницы: 1
Читают тему (гостей: 1)
Наверх