Не обновляются макросы в excel

Не работают макросы в Excel? Включите их выполнение, добавьте специальный модель с кодом, проверьте версию ОС и Эксель, убедитесь в соответствии пакета приложений, активируйте Майкрософт Офис, снимите блокировку файла, проверьте систему безопасности и применяемые библиотеки. Ниже подробно рассмотрим, в чем могут быть причины подобной неисправности, и какие шаги предпринимать для ее устранения.

Причины

Для начала стоит разобраться, почему не работает макрос в Excel, ведь от этого зависят дальнейшие шаги. К основным причинам стоит отнести:

  1. Функция отключена.
  2. Отключение отслеживания событий.
  3. Устаревшая операционная система.
  4. Несоответствие разработчика пакета офисных приложений.
  5. Устаревшая версия Майкрософт Офис.
  6. Неактивированная версия Excel.
  7. Заблокированный файл.
  8. Неправильные настройки безопасности.
  9. Отсутствие необходимой библиотеки и т. д.

Выше рассмотрены основные причины, почему не удается выполнить макрос в Excel. Все они могут быть решены самостоятельно с помощью приведенных ниже рекомендации. Подробнее на решении вопроса остановимся ниже.

Что делать

Многие пользователи теряются в ситуации, когда не включаются или вообще не работают макросы в Excel. Такая проблема не дает нормально пользоваться приложением и заставляет искать альтернативные варианты.

Включите опцию

Первое, что необходимо сделать — включить функцию для обеспечения ее работоспособности. Здесь многое зависит от версии Эксель.

Если не работают макросы в Excel 2003, сделайте следующие шаги:

  1. Войдите в «Сервис».
  2. Перейдите в раздел «Безопасность».
  3. Кликните «Уровень макросов «Низкий».

В случае, когда не работают макросы в Excel 2007, включите их следующим образом:

  1. Жмите на кнопку «Офис».
  2. Войдите в параметры Excel.
  3. Кликните на «Центр управления безопасности».
  4. Войдите в «Параметры центра управления безопасностью».
  5. Жмите на «Параметры макросов».
  6. Кликните на «Разрешить все …».

В ситуации, когда не работают макросы в Excel 2016, сделайте следующие шаги:

  1. Войдите в раздел «Файл».
  2. Кликните на кнопку «Параметры».
  3. Зайдите в «Центр управления безопасностью».
  4. Войдите в «Параметры центра управления безопасностью».
  5. Кликните на «Параметры …».
  6. Жмите на «Разрешить все …».

После внесения изменений параметра безопасности перезапустите приложение Excel, а именно закройте его полностью и откройте снова. Лишь после этого изменения вступают в силу.

Добавьте нужный модуль в книгу

Бывают ситуации, когда макросы включены, но не работают в Excel из-за отключения каким-либо элементом отслеживания событий. В таком случае сделайте следующее:

  1. Перейдите в редактор VBA с помощью клавиш Alt+F11.
  2. Вставьте указанный ниже код.

Sub Reset_Events()

Application.EnableEvents = True

End Sub

  1. Для выполнения кода поставьте курсор в любой точке между началом и концом.
  2. Кликните F5.

Проверьте операционную систему

В ситуации, когда не отображаются макросы в Excel, обратите внимание на тип операционной системы. К примеру, Майкрософт Офис, который подходит для Виндовс, на Мак ОС уже работать не будет. Причина в том, что в приложении используются разные библиотеки. Даже если надстройки и функционируют, могут быть сбои в работе. Вот почему при появлении проблем нужно проверить ОС на соответствие.

Обратите внимание на разработчика

Если в Экселе не работают макросы, причиной может быть другой разработчик. Так, пользователи Excel часто применяют OpenOffice или LibreOffice. Эти пакеты созданы на разных языках программирования, которые имеют индивидуальные особенности. Так, если надстройки написаны на Visual Basic for Application, он может не работать в указанных выше офисных приложениях. Вот почему необходимо уточнять, для какого пакета создан макрос / надстройка.

Проверьте версию Майкрософт Офис

В Макрософт Офис 2003 применяются надстройки xla для Excel. В современных версиях расширение поменялось на xlam. Если ставить макросы старого типа в приложения Офис 2007 и больше, никаких трудностей не происходит. Если же вы попытаетесь поставить новую надстройку на старую версию Excel, она зачастую не работает. Вот почему важно обратить внимание на этот параметр при выборе.

Убедитесь в наличии пакета VBA

Одной из причин, почему не запускается макрос в Excel, может быть отсутствие пакета VBA. Для успешного запуска надстройки необходимо, чтобы этот пакет был установлен. Иногда он уже установлен в Офис, но так происходит не всегда. Для проверки жмите комбинацию на Alt+F11. Если после этого появляется Visual Basic, компонент можно считать установленным. В ином случае его нужно поставить. Для этого:

  • Зайдите в «Пуск», а далее «Панель управления / Программы и компоненты».

  • Выберите программу Майкрософт Офис.
  • Жмите на кнопку «Изменить».

  • Запустить файл установки Setup.exe.
  • Кликните на «Добавить или удалить компоненты».
  • Выберите в списке Visual Basic и установите его.

Активируйте Офис

Если в Excel 2007 не работает кнопка «макросы», причиной может быть отсутствие активации приложения. Для этого жмите на кнопку «Активировать» и следуйте инструкции. В большинстве случаев такая опция является платной.

Снимите блокировку файла

Учтите, что документ, полученный с другого ПК / ноутбука, может заблокироваться. Для разблокировки файла нужно нажать ПКМ и в разделе «Общие» кликнуть на «Разблокировать».

 Проверьте библиотеки

В случае, когда параметры макросов не активны в Excel, причиной может быть появление ошибки «Can’t find project or library». При этом, надстройка работает на другом ПК / ноутбуке, а здесь возникают проблемы. Ошибку легко устранить, если в окне, которое идет за сообщением об ошибке, снять отметки в полях Missing. Для вызова окна можно выбрать пункт меню Tools / References.

Проверьте настройки безопасности

В ситуации, когда не работают макросы в Excel, можно добавить надежные расположения или настроить доступ к объектной модели VBA. Для этого в Офис 2007 необходимо сделать следующее:

  1. Войдите в Меню
  2. Кликните на пункт «Параметры».
  3. Жмите на «Центр управления безопасностью».
  4. Войдите в «Параметры центра управления безопасностью».
  5. Кликните на «Параметры макросов» и «Доверять доступ к объектной модели проектов».

Зная, почему не работают макросы в Excel, вы можете с легкостью исправить проблему и восстановить работоспособность. Если же сложности в работе возникают, вы всегда можете воспользоваться инструкцией в статье.

В комментариях расскажите, какой из приведенных выше вариантов вам помог, и что еще можно сделать.

Отличного Вам дня!

 

Здравствуйте, столкнулся с такой проблемкой: есть формула =впр(k25;\svarogконтроль[18.01.13.xlsm]лист1′!$c$h;5;0) она обновляется только если заново открыть файл или через данныеизменить связи, а мне нужно чтобы связи обновлялись каждый раз после сохранения файла. Подскажите пожалуйста как сделать?

 

Заметил такую вещь, если я держу открытым тот файл из которого беру информацию, то все ок, обновляется моментально

Изменено: Алексей Скворцов18.01.2013 03:26:56

 

Z

Пользователь

Сообщений: 6111
Регистрация: 21.12.2012

Win 10, MSO 2013 SP1

#3

18.01.2013 11:12:09

Цитата
Алексей Скворцов пишет:
а мне нужно чтобы связи обновлялись каждый раз после сохранения файла.

Каждый раз — это когда и как?.. Если не устраивают настройки — при открытии, то скорее всего макросом…  ;)

«Ctrl+S» — достойное завершение ваших гениальных мыслей!.. ;)

 

если подробно, то:
есть два файла, два плана, для контроля и отгрузки.
Я их связал впром, благодаря этому в файле отгрузки видно что проверено.
Если я открываю оба файла на компьютере то впр работает как и все формулы, обновляется моментально при каких либо изменениях, без всяких сохранений.
Но если файл контроля закрыт, то связи приходится обновлять вручную!
Двумя способами:
первый — закрыть и открыть файл отгрузки по новой, тогда связи обновятся
второй — через данныеизменить связиобновить связь

Файлы имеют общий доступ.

Если нельзя настроить обновление автоматом при сохранении то помогите пожалуйста с макросом

 

что такое подключение ? с помощью него можно сделать то что мне нужно?

 

помогите пожалуйста, завтра на работу, хочу доделать свой мега план  :)

З.ы. В итоге я умозаключения что нужен макросы который при сохранении файла обновляет все связи, все мои ячейки которые впром вытягивают данные с другого файла. Help me!?

Изменено: Алексей Скворцов20.01.2013 12:37:14

 

попробовал записать макрс, который обновляет связи

ActiveWorkbook.UpdateLink Name:= _
«G:svarogконтроль[18.01.13.xlsm», Type:=xlExcelLinks

Как сделать чтобы он обновлял не зависимо от пути к файлу? ведь каждый новый план будет на другое число
Как сделать что бы макрос обновлял все связи, при сохранении файла?

Помогите пожалуйста

 

ZVI

Пользователь

Сообщений: 4328
Регистрация: 23.12.2012

#8

24.01.2013 01:01:07

Код модуля ЭтаКнига

Код
' Код модуля ЭтаКнига
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
  On Error Resume Next
  Me.UpdateLink Me.LinkSources
End Sub
 

Огромное спасибо!

Подскажите пожалуйста как сделать чтобы макрос игнорировал защиту?
Я хочу спасти формулы от любителей их портить, включил защиту всех ячеек с формулами и макрос перестал обновлять связи, пришлось отключить. (файл в общем доступе)

p.s. Вставил в ваш макрос строку
Worksheets(«план»   ;)  .Protect Password:=»555″, UserInterfaceOnly:=True
После этого включил защиту, проверил связь обновляется, после этого открыл общий доступ и все перестало работать и вылезла ошибка 1004

Изменено: Алексей Скворцов28.01.2013 21:02:56

 

The_Prist

Пользователь

Сообщений: 14182
Регистрация: 15.09.2012

Профессиональная разработка приложений для MS Office

#10

26.01.2013 11:41:47

Код
Worksheets("план") .Protect Password:="555", UserInterfaceOnly:=True

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

Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы…

 

ZVI

Пользователь

Сообщений: 4328
Регистрация: 23.12.2012

#11

26.01.2013 12:27:59

Если установлена защита листа, да еще и общий доступ, тогда лучше так:
(код необходимо поместить в модуль ЭтаКнига вместо того, что был раньше)

Код
' Код модуля ЭтаКнига
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
  Dim x
  On Error Resume Next
  Application.ScreenUpdating = False
  For Each x In Me.LinkSources(xlExcelLinks)
    Workbooks.Open(Filename:=x, UpdateLinks:=False, ReadOnly:=True).Close
    'If Err Then MsgBox x & vbLf & Err.Description, vbExclamation, "Link Error"
  Next
  Application.ScreenUpdating = True
End Sub

Изменено: ZVI26.01.2013 12:54:39

 

Мотя

Пользователь

Сообщений: 3218
Регистрация: 25.12.2012

The_Prist и ZVI!
Ваши консультации — всегда СУПЕР!

 

Алексей Скворцов

Пользователь

Сообщений: 63
Регистрация: 28.12.2012

#13

26.01.2013 17:57:51

Цитата
The_Prist пишет: код выполняется каждый раз при открытии книги…

пытался смастерить сам) из того что нашёл в приёмах!

Цитата
Vladimir Zakharov пишет: Если установлена защита листа, да еще и общий доступ, тогда лучше так:

спасибо большое, в понедельник опробую!

 

Что то у меня ничего не получается. Макрос при сохранении файла просит сохранить файл из которого берутся данные?
При сохранении пытается еще сохранить квартир копию…
И зачем 7 строчка? Мне нужно её включать?

 

ZVI

Пользователь

Сообщений: 4328
Регистрация: 23.12.2012

#15

28.01.2013 16:55:35

Очевидно, во внешних файлах применены «летучие» функции.
Тогда в 6-й строке кода нужно добавить в конце False, вот так:

Код
' Код модуля ЭтаКнига
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
  Dim x
  On Error Resume Next
  Application.ScreenUpdating = False
  For Each x In Me.LinkSources(xlExcelLinks)
    Workbooks.Open(Filename:=x, UpdateLinks:=False, ReadOnly:=True).Close False
    'If Err Then MsgBox x & vbLf & Err.Description, vbExclamation, "Link Error"
  Next
  Application.ScreenUpdating = True
End Sub

А 7-я строка, если её раскомментировать, будет выводить предупреждение в случае, когда отсутствует файл, на который ссылаются формулы.

 

Бонифаций

Пользователь

Сообщений: 120
Регистрация: 22.12.2012

#16

28.01.2013 17:19:20

Предлагаю VBS скрипт:
В файле «AutoRefreshScr.txt» пропишите путь к папке, где необходимо обновить файлы:

Код
sPath = "C:Documents and SettingsUserМои документыЗагрузки"

Проставьте в файле «AutoRefreshScr.txt» расширение AutoRefreshScr.vbs
Запустите скрипт — все файлы в указанной папке обновляться.

Прикрепленные файлы

  • AutoRefreshScr.txt (1011 Б)

 

ZVI

Пользователь

Сообщений: 4328
Регистрация: 23.12.2012

#17

28.01.2013 18:06:31

Цитата
Бонифаций пишет:
Предлагаю VBS скрипт:.

Скрипт интересный, но, к сожалению, таким скриптом ячейки со ссылками на другие файлы не обновятся. Ваш скрипт написан для обновления сводных таблиц и внешних запросов, но не для обновления прямых внешних ссылок.  В первом сообщении Алексей уточнял, что «нужно, чтобы связи обновлялись каждый раз после сохранения файла«, и позже ещё добавил, что «нужен макрос, который при сохранении файла обновляет все связи, все мои ячейки которые ВПРом вытягивают данные с другого файла«.

 

ZVI, проверял всё отлично работает.
Но возникли проблемы, когда запустил файл на работе и его открыли 3 человека.
По началу всё работало нормально, конечно дольше чем обычно, файл немного тяжеловат, но потом начались страшные глюки, перечислю:
на одном компе наблюдалось что то очень странное, на экране начиналась цветомузыка, водишь мышкой по excel а там всё мигает, пропадает, появляется, кусками, или кнопками, в общем пока не вырубил excel в диспетчере всё мигало.
Ещё excel зависал при переключении между файлами, при этом в диспетчере размер вырастал до 702 мегабайт и всё висело, только принудительно выключался, иногда вылетала ошибка про недостаточно ресурсов…

В итоге придётся объединить 2 файла, что бы убрать связи.

 

anjfurtun

Пользователь

Сообщений: 1
Регистрация: 29.05.2013

подскажите как менять путь  в формуле….. например у меня файлы январь , февраль, март и т д… в февраль берется с января в март с февраля в формуле прописывать каждый раз месяц неудобно есть ли выход формулы у меня выглядит вот так  =’\Pros5Мои документы20  свод 2013 год[апрель 2013 год.xls]223′!C37

 

vikttur

Пользователь

Сообщений: 47199
Регистрация: 15.09.2012

Обновление связей и измение связей — совсем разное. Не находите?
Похоже, Вам не в эту тему.

 

Elmira

Пользователь

Сообщений: 188
Регистрация: 02.04.2013

У меня почти тоже самая проблема. Поэтому, если можно, не буду открывать новую тему,

Только разница в том что,  если я держу открытым обе  файлы, в 1-м комп.  все ок, а в другом комп. ни как.
Не пойму в чем проблема.

И еще хотела использувать Ваш код, почему-то у меня не получается. Посмотрите пожалуйста мои файлы, может быт я что-то не так делаю

Прикрепленные файлы

  • sht.rar (16.67 КБ)

 

Юрий М

Модератор

Сообщений: 60585
Регистрация: 14.09.2012

Контакты см. в профиле

#22

30.05.2013 10:04:58

Цитата
Elmira пишет:
если я держу открытым обефайлы, в 1-м комп.все ок, а в другом комп. ни как. Не пойму в чем проблема.

Возможная проблема: на втором компьютере файлы открыты в разных приложениях.

 

thalamix

Пользователь

Сообщений: 10
Регистрация: 24.04.2013

Ребят, такой же вопрос — файлы лежат рядом, но один берет данные из другого только когда тот открыт, EXCEL 2010. При открытии спрашивает «Обновить?», но после обновления дает ошибку #ЗНАЧ. При этом, даже если файлы с требуемыми данными не открыты, в «Изменить связи» во всех зависимых связях пишет состояние «ОК».

Неужели нельзя без макроса сделать так, чтобы данные обновлялись без открытия файла данных? На Excel 2003 вроде работало, но там нету СУММЕСЛИМН.

Спасибо!

Изменено: thalamix22.01.2014 14:53:33
(Подписался на тему)

 

meshkale

Пользователь

Сообщений: 30
Регистрация: 28.01.2014

А если я хочу сделать так чтобы по нажатию кнопки макрос открывал определенный лист который заранее скрыт и обновлял только его? подскажите что надо изменить в вышеперечисленных кодах? (тоже защищенные ячейки с формулами которые находятся в общем доступе)

Изменено: meshkale30.01.2014 15:04:23

 

The_Prist

Пользователь

Сообщений: 14182
Регистрация: 15.09.2012

Профессиональная разработка приложений для MS Office

#25

30.01.2014 15:13:09

Цитата
На Excel 2003 вроде работало, но там нету СУММЕСЛИМН

СУММЕСЛИМН не работает с закрытыми книгами.  СУММЕСЛИ тоже.

Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы…

 

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

спасибо за ответ!

 

mikl001

Пользователь

Сообщений: 1
Регистрация: 28.06.2022

#27

28.06.2022 16:31:52

Доброго времени суток, скачал файл скрипт AutoRefreshScr, а он из 5 запросов обновляет только 4 это в одном файле, в другом из 6 запросов обновляет только 3.  

  • Remove From My Forums
  • Вопрос

  • Сегодня прилетела куча обновлений MS Office (2007, 2010, 2013) после их установки перестали работать макросы в книгах Exel — кнопка макроса «не нажимается». При открытии файла никаких уведомлений о заблокированном
    содержимом нет.

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

    ps: обновления датированы 9 декабря 2014

    • Изменено

      11 декабря 2014 г. 8:19

Ответы

  • Здравствуйте,

    Посмотрите английскую ветку обсуждения данного вопроса, там несколько временных решений 

    Excel 2010 macros does not work after updates 9.Dec.2014

    Станислав: Для Office 2013 — KB2726958


    Мнения, высказанные здесь, являются отражением моих личных взглядов, а не позиции корпорации Microsoft. Вся информация предоставляется как есть, без каких-либо гарантий. Не забывайте помечать сообщения как ответы и полезные, если
    они Вам помогли.

    • Изменено
      Elina Lebedeva
      12 декабря 2014 г. 13:09
    • Предложено в качестве ответа
      Nutslyc
      12 декабря 2014 г. 14:15
    • Помечено в качестве ответа
      ЖукMVP, Moderator
      12 декабря 2014 г. 15:00

  • Столкнулся с той же самой проблемой. Нашел решение — может кому пригодится:

    1. Меняем все кнопки ActiveX на кнопки из группы «Элементы управления формы»

    2. Меняем в коде функции, которые висели на кнопках, с Private на Public

    3. Переходим в режим конструктора, правой кнопкой по добавленной кнопке элемента управления формы -> назначить макрос

    4. Далее радуемся жизни и работающему коду.

    P.S. у меня отвалился весь функционал на нескольких проектах. Наши админы были очень рады, когда им пришлось сносить обновления на всех машинах.

    P.P.S. Решение протестировал на 2-х машинах — все заработало без проблем. Хотел пост с картинками, но не дает вставлять картинки)

    • Изменено
      Nutslyc
      12 декабря 2014 г. 7:43
    • Предложено в качестве ответа
      ILYA [ sie ] SazonovModerator
      12 декабря 2014 г. 11:01
    • Помечено в качестве ответа
      ЖукMVP, Moderator
      12 декабря 2014 г. 15:00

Каждый пользователь согласится с тем, что Microsoft Excel является одним из самых полезных инструментов в древности современных компьютеров. Каждый день миллионы людей используют электронные таблицы Microsoft Excel для выполнения множества задач, начиная от простых, таких как ведение записей журнала или записей, до расширенного анализа данных на основе сложных формул. Неоспоримо, что формулы Excel играют жизненно важную роль в обработке данных. Но иногда вы можете обнаружить, что формулы Excel не обновляются автоматически.

Формулы Excel не обновляются автоматически

Это может быть очень неприятно, когда ваши формулы не обновляются автоматически в Excel. Основываясь на этом, вот возможные причины, почему это может происходить. В этом посте мы объясним четыре таких сценария:

  1. Расчет настроен на «Ручной»
  2. Ячейка отформатирована как текст
  3. Кнопка Показать формулы включена
  4. Пробел введен перед знаком равенства.

Давайте рассмотрим каждый из них в деталях.

1] Расчет настроен на «Ручной»

Это одна из самых распространенных причин и первая проверка, которую нужно выполнить. Иногда параметр расчета настраивается на «ручной», и это основной сбой, заставляющий ячейки не обновлять формулы в Microsoft Excel. Вы можете решить эту проблему.

Запустите Excel, нажмите « Вкладка формул », а затем кнопку « Параметры расчета ». Теперь установите для параметра расчета значение Автоматический .

Этот параметр можно изменить с помощью макросов или других книг Excel, открытых ранее. Следовательно, если вы не знаете об этом параметре, это может быть причиной этой проблемы.

2] Ячейка отформатирована как текст .

Случайное форматирование ячеек, включая формулы, как « Текст » может стать еще одной проблемой, вызывающей эту проблему. В текстовом формате ячейка не будет рассчитываться так, как предполагалось.

Нажмите на ячейку и проверьте группу номеров на вкладке «Главная». Если отображается « Текст », измените его на « Общие », используя раскрывающееся меню.

Теперь пересчитайте формулу в ячейке, дважды щелкнув по ячейке и нажав « Ввод» .

3] Показать кнопку “Формулы” включено

Если кнопка « Показать формулы » на вкладке «Формулы» включена, формулы не работают. Это может быть сделано случайно пользователем или кем-то, кто ранее использовал эту книгу. Эта кнопка в основном используется при аудите формул, поэтому вместо конечного результата отображается формула. Тем не менее, эта вкладка очень полезна при устранении неполадок с глюками формулы.

Чтобы это исправить, просто нажмите кнопку Показать формулы и Отключите его .

4] Пробел введен перед знаком равенства

Последняя причина может заключаться в том, что при вводе формулы, если вы ошибочно вводите пробел перед «Равным (=)», следовательно, формула не будет рассчитываться. Эту ошибку очень трудно заметить, поэтому очень часто она остается незамеченной.

Проверьте, есть ли пробел, дважды щелкнув по ячейке, если это так, удалите ее, и формула обновится.

Я надеюсь, что эти советы помогут многим из вас решить проблему с формулами Excel, которые не обновляются автоматически. Обычные пользователи Excel сталкиваются с этими проблемами не раз, но теперь вы можете решать их достаточно хорошо!

Skip to content

На чтение 2 мин. Просмотров 8.6k.

Что делает макрос: Это не редкость, когда имеется несколько сводных таблиц в одной книге. Чаще всего эти сводные таблицы ссылаются на данные, которые требует их обновления. Этот макрос поможет обновить все сводные таблицы по первому требованию.

Содержание

  1. Что делает макрос
  2. Код макроса
  3. Как этот код работает
  4. Как использовать

Что делает макрос

Этот макрос — перебирает рабочие листы, а затем перебирает сводные таблицы. На каждом цикле, макрос обновляет сводную таблицу.

Код макроса

Sub ObnovitSvodnieTablici()
'Шаг 1: Объявляем переменные
Dim ws As Worksheet
Dim pt As PivotTable
'Шаг 2: Запускаем цикл через каждый лист книги
For Each ws In ThisWorkbook.Worksheets
'Шаг 3: Запускаем цикл через все сводные таблицы
For Each pt In ws.PivotTables
pt.RefreshTable
Next pt
Next ws
End Sub

Как этот код работает

  1. Шаг 1 первый объявляет объект под названием WS. Это создает контейнер памяти для каждого рабочего листа. Он также объявляет объект под названием PT, который держит
    каждую сводную таблицу.
  2. Шаг 2 просматривает все рабочие листы в этой книге. Обратите внимание, что мы используем ThisWorkbook вместо ActiveWorkbook.
  3. Шаг 3 цикл проходит через все сводные таблицы в каждом листе, а затем запускает RefreshTable метод. После макрос переходит к следующему листу. После того, как все листы были
    оценены, макрос заканчивается. ActiveWorkbook относится к книге, которая в данный момент активна.

В качестве альтернативного метода для обновления всех сводных таблиц в книге, вы можете использовать ThisWorkbook.RefreshAll. Это обновляет все сводные таблицы в рабочей книге. Тем не менее, он также обновляет все таблицы запросов. Так что, если у вас есть таблицы данных, которые подключены к внешнему источнику или в Интернете, на них будет влиять метод RefreshAll. Если это не является проблемой, вы можете просто ввести ThisWorkbook.RefreshAll в стандартный модуль.

Как использовать

Для реализации этого макроса, вы можете скопировать и вставить его в стандартный модуль:

  1. Активируйте редактор Visual Basic, нажав ALT + F11.
  2. Щелкните правой кнопкой мыши имя проекта / рабочей книги в окне проекта.
  3. Выберите Insert➜Module.
  4. Введите или вставьте код.

Понравилась статья? Поделить с друзьями:
  • Не найдено приложение ms excel
  • Не обновляются значения в ячейках excel
  • Не найдено поиск решения в excel
  • Не обновляются данные в диаграмме excel
  • Не найдено ни одной ячейки удовлетворяющей указанным условиям excel