Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.54/13: Рейтинг темы: голосов - 13, средняя оценка - 4.54
5 / 5 / 0
Регистрация: 10.03.2011
Сообщений: 27

Сводные с большими обьемами данными не обновляются через Workbook_Open()

05.07.2011, 16:30. Показов 2841. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте,

У меня есть одна проблема с обновлением сводных таблиц. Через назначенные задания ставлю этот код на обновление файла:
Private Sub Workbook_Open()
Application.DisplayAlerts = False
ActiveWorkbook.RefreshAll
ActiveWorkbook.Save
ActiveWorkbook.Close SaveChanges:=True
End Sub

Все сводные таблицы обновляются, кроме сводных с большими обьемами данных. Можете посмотреть в чем проблема, может здесь есть подводные камни, которые я не знаю, с vba работать начал недавно...
Thank you in advance!
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
05.07.2011, 16:30
Ответы с готовыми решениями:

Не обновляются связи с внешними данными через "Диспетчер связанных таблиц"
Не обновляются связь с 1 таблицей "Заказы" через "Диспетчер связанных таблиц", остальное всё обновляется. Можно ли как-то решить...

Работа с большими данными
Не знаю к какому разделу относится данный вопрос, решил написать сюда. Есть сайт, у него большая база данных. Из доступов только ftp и...

Работа с большими данными
Здравствуйте. Так получилось, что сейчас надо написать сайт с большим количеством контента (таблица с контентом > 1GB). И я хочу что-бы...

6
735 / 203 / 11
Регистрация: 23.06.2011
Сообщений: 440
05.07.2011, 17:39
Visual Basic
1
2
3
4
5
6
7
8
9
10
Private Sub Workbook_Open()
   Dim wsItem As Worksheet
   Dim ptItem As PivotTable
   
   For Each wsItem In Me.Worksheets
      For Each ptItem In wsItem.PivotTables
         ptItem.RefreshTable
      Next ptItem
   Next wsItem
End Sub
1
5 / 5 / 0
Регистрация: 10.03.2011
Сообщений: 27
06.07.2011, 10:54  [ТС]
Спасибо за ответ. Но при запуска этого макроса, файл медленно и очень долго обновляется, и в итого выходит run time error. Можете подсказать еще других, более оптимальных путей обновления сводных таблиц.
0
735 / 203 / 11
Регистрация: 23.06.2011
Сообщений: 440
06.07.2011, 13:27
Сколько у вас сводных таблиц, какой объем данных и откуда берутся данные?
0
5 / 5 / 0
Регистрация: 10.03.2011
Сообщений: 27
06.07.2011, 13:42  [ТС]
Двадцать три сводных таблиц, из них три таблицы содержат более 20 тысяч записей. Источник данных Sql Server.
0
735 / 203 / 11
Регистрация: 23.06.2011
Сообщений: 440
06.07.2011, 15:15
А много листов в книге?

Добавлено через 18 минут
В объекной модели VBA в код каждого объекта "Лист" добавьте:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
Private Sub Worksheet_Activate()
   Static bDone As Boolean
   Dim pvtItem As PivotTable
   
   If Not bDone Then
      For Each pvtItem In Me.PivotTables
         pvtItem.RefreshTable
         Application.StatusBar = "Îáíîâëåíèå òàáëèöû " & pvtItem.Name
         bDone = True
      Next pvtItem
      Application.StatusBar = ""
   End If
End Sub
Таким способом сводные таблицы будут обновляться не при открытии книги, а при открытии листа. При этом они будут автоматически обновляться только при первом заходе на лист, так как переменная bDone не дает обновлять таблицы каждый раз. После закрытии и открытии заново переменная снова станет False и таблицы обновятся.
0
5 / 5 / 0
Регистрация: 10.03.2011
Сообщений: 27
06.07.2011, 16:25  [ТС]
Файл содержит 23 листов. Сейчас попробую по вашему методу.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
06.07.2011, 16:25
Помогаю со студенческими работами здесь

Работа с большими данными
Добрый день. Существуют ситуации, когда нужно подгрузить и распарсить что-то очень большое, ну, например, адреса Москвы. Если поставить...

Коллекции для работы с большими данными
Доброго времени суток! Столкнулся с такой проблемой: работаю с очень большим объемом данных, порядка в несколько миллионов элементов, дело...

Класс для работы с большими данными
Задали задание, написать класс который позволит работать с большими массивами, т.е. конструктор класса должен позволять создавать массив...

Не обновляются данные MySQL через UPDATE
Всем привет. Вот мой код: <meta charset=utf-8> <?php $dbhost = 'localhost'; $dbuser = '***'; $dbpass = '***'; $conn =...

Некоторые компьютеры не обновляются через локальную сеть
Здравствуйте. Хотел спросить. В чем может быть проблема,если некоторые компьютеры в сети не обновляются через http. У каждого...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru