Не работают макросы в Excel? Включите их выполнение, добавьте специальный модель с кодом, проверьте версию ОС и Эксель, убедитесь в соответствии пакета приложений, активируйте Майкрософт Офис, снимите блокировку файла, проверьте систему безопасности и применяемые библиотеки. Ниже подробно рассмотрим, в чем могут быть причины подобной неисправности, и какие шаги предпринимать для ее устранения.
Причины
Для начала стоит разобраться, почему не работает макрос в Excel, ведь от этого зависят дальнейшие шаги. К основным причинам стоит отнести:
- Функция отключена.
- Отключение отслеживания событий.
- Устаревшая операционная система.
- Несоответствие разработчика пакета офисных приложений.
- Устаревшая версия Майкрософт Офис.
- Неактивированная версия Excel.
- Заблокированный файл.
- Неправильные настройки безопасности.
- Отсутствие необходимой библиотеки и т. д.
Выше рассмотрены основные причины, почему не удается выполнить макрос в Excel. Все они могут быть решены самостоятельно с помощью приведенных ниже рекомендации. Подробнее на решении вопроса остановимся ниже.
Что делать
Многие пользователи теряются в ситуации, когда не включаются или вообще не работают макросы в Excel. Такая проблема не дает нормально пользоваться приложением и заставляет искать альтернативные варианты.
Включите опцию
Первое, что необходимо сделать — включить функцию для обеспечения ее работоспособности. Здесь многое зависит от версии Эксель.
Если не работают макросы в Excel 2003, сделайте следующие шаги:
- Войдите в «Сервис».
- Перейдите в раздел «Безопасность».
- Кликните «Уровень макросов «Низкий».
В случае, когда не работают макросы в Excel 2007, включите их следующим образом:
- Жмите на кнопку «Офис».
- Войдите в параметры Excel.
- Кликните на «Центр управления безопасности».
- Войдите в «Параметры центра управления безопасностью».
- Жмите на «Параметры макросов».
- Кликните на «Разрешить все …».
В ситуации, когда не работают макросы в Excel 2016, сделайте следующие шаги:
- Войдите в раздел «Файл».
- Кликните на кнопку «Параметры».
- Зайдите в «Центр управления безопасностью».
- Войдите в «Параметры центра управления безопасностью».
- Кликните на «Параметры …».
- Жмите на «Разрешить все …».
После внесения изменений параметра безопасности перезапустите приложение Excel, а именно закройте его полностью и откройте снова. Лишь после этого изменения вступают в силу.
Добавьте нужный модуль в книгу
Бывают ситуации, когда макросы включены, но не работают в Excel из-за отключения каким-либо элементом отслеживания событий. В таком случае сделайте следующее:
- Перейдите в редактор VBA с помощью клавиш Alt+F11.
- Вставьте указанный ниже код.
Sub Reset_Events()
Application.EnableEvents = True
End Sub
- Для выполнения кода поставьте курсор в любой точке между началом и концом.
- Кликните 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 необходимо сделать следующее:
- Войдите в Меню
- Кликните на пункт «Параметры».
- Жмите на «Центр управления безопасностью».
- Войдите в «Параметры центра управления безопасностью».
- Кликните на «Параметры макросов» и «Доверять доступ к объектной модели проектов».
Зная, почему не работают макросы в Excel, вы можете с легкостью исправить проблему и восстановить работоспособность. Если же сложности в работе возникают, вы всегда можете воспользоваться инструкцией в статье.
В комментариях расскажите, какой из приведенных выше вариантов вам помог, и что еще можно сделать.
Отличного Вам дня!
Здравствуйте, столкнулся с такой проблемкой: есть формула =впр(k25;\svarogконтроль[18.01.13.xlsm]лист1′!$c$h;5;0) она обновляется только если заново открыть файл или через данныеизменить связи, а мне нужно чтобы связи обновлялись каждый раз после сохранения файла. Подскажите пожалуйста как сделать? |
|
Заметил такую вещь, если я держу открытым тот файл из которого беру информацию, то все ок, обновляется моментально Изменено: Алексей Скворцов — 18.01.2013 03:26:56 |
|
Z Пользователь Сообщений: 6111 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:= _ Как сделать чтобы он обновлял не зависимо от пути к файлу? ведь каждый новый план будет на другое число Помогите пожалуйста |
|
ZVI Пользователь Сообщений: 4328 |
#8 24.01.2013 01:01:07 Код модуля ЭтаКнига
|
||
Огромное спасибо! Подскажите пожалуйста как сделать чтобы макрос игнорировал защиту? p.s. Вставил в ваш макрос строку Изменено: Алексей Скворцов — 28.01.2013 21:02:56 |
|
The_Prist Пользователь Сообщений: 14182 Профессиональная разработка приложений для MS Office |
#10 26.01.2013 11:41:47
код выполняется каждый раз при открытии книги. Но нига у Вас в общем доступе и получаете ошибку вполне очевидную, т.к. нельзя изменять имеющиеся параметры защиты для книг в общем доступе. Чтобы это сделать сначала необходимо снять общий доступ, установить защиту и заново установить общий доступ. Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы… |
||
ZVI Пользователь Сообщений: 4328 |
#11 26.01.2013 12:27:59 Если установлена защита листа, да еще и общий доступ, тогда лучше так:
Изменено: ZVI — 26.01.2013 12:54:39 |
||
Мотя Пользователь Сообщений: 3218 |
The_Prist и ZVI! |
Алексей Скворцов Пользователь Сообщений: 63 |
#13 26.01.2013 17:57:51
пытался смастерить сам) из того что нашёл в приёмах!
спасибо большое, в понедельник опробую! |
||||
Что то у меня ничего не получается. Макрос при сохранении файла просит сохранить файл из которого берутся данные? |
|
ZVI Пользователь Сообщений: 4328 |
#15 28.01.2013 16:55:35 Очевидно, во внешних файлах применены «летучие» функции.
А 7-я строка, если её раскомментировать, будет выводить предупреждение в случае, когда отсутствует файл, на который ссылаются формулы. |
||
Бонифаций Пользователь Сообщений: 120 |
#16 28.01.2013 17:19:20 Предлагаю VBS скрипт:
Проставьте в файле «AutoRefreshScr.txt» расширение AutoRefreshScr.vbs Прикрепленные файлы
|
||
ZVI Пользователь Сообщений: 4328 |
#17 28.01.2013 18:06:31
Скрипт интересный, но, к сожалению, таким скриптом ячейки со ссылками на другие файлы не обновятся. Ваш скрипт написан для обновления сводных таблиц и внешних запросов, но не для обновления прямых внешних ссылок. В первом сообщении Алексей уточнял, что «нужно, чтобы связи обновлялись каждый раз после сохранения файла«, и позже ещё добавил, что «нужен макрос, который при сохранении файла обновляет все связи, все мои ячейки которые ВПРом вытягивают данные с другого файла«. |
||
ZVI, проверял всё отлично работает. В итоге придётся объединить 2 файла, что бы убрать связи. |
|
anjfurtun Пользователь Сообщений: 1 |
подскажите как менять путь в формуле….. например у меня файлы январь , февраль, март и т д… в февраль берется с января в март с февраля в формуле прописывать каждый раз месяц неудобно есть ли выход формулы у меня выглядит вот так =’\Pros5Мои документы20 свод 2013 год[апрель 2013 год.xls]223′!C37 |
vikttur Пользователь Сообщений: 47199 |
Обновление связей и измение связей — совсем разное. Не находите? |
Elmira Пользователь Сообщений: 188 |
У меня почти тоже самая проблема. Поэтому, если можно, не буду открывать новую тему, Только разница в том что, если я держу открытым обе файлы, в 1-м комп. все ок, а в другом комп. ни как. И еще хотела использувать Ваш код, почему-то у меня не получается. Посмотрите пожалуйста мои файлы, может быт я что-то не так делаю Прикрепленные файлы
|
Юрий М Модератор Сообщений: 60585 Контакты см. в профиле |
#22 30.05.2013 10:04:58
Возможная проблема: на втором компьютере файлы открыты в разных приложениях. |
||
thalamix Пользователь Сообщений: 10 |
Ребят, такой же вопрос — файлы лежат рядом, но один берет данные из другого только когда тот открыт, EXCEL 2010. При открытии спрашивает «Обновить?», но после обновления дает ошибку #ЗНАЧ. При этом, даже если файлы с требуемыми данными не открыты, в «Изменить связи» во всех зависимых связях пишет состояние «ОК». Неужели нельзя без макроса сделать так, чтобы данные обновлялись без открытия файла данных? На Excel 2003 вроде работало, но там нету СУММЕСЛИМН. Спасибо! Изменено: thalamix — 22.01.2014 14:53:33 |
meshkale Пользователь Сообщений: 30 |
А если я хочу сделать так чтобы по нажатию кнопки макрос открывал определенный лист который заранее скрыт и обновлял только его? подскажите что надо изменить в вышеперечисленных кодах? (тоже защищенные ячейки с формулами которые находятся в общем доступе) Изменено: meshkale — 30.01.2014 15:04:23 |
The_Prist Пользователь Сообщений: 14182 Профессиональная разработка приложений для MS Office |
#25 30.01.2014 15:13:09
СУММЕСЛИМН не работает с закрытыми книгами. СУММЕСЛИ тоже. Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы… |
||
хм. интересно, жива ли тема… спасибо за ответ! |
|
mikl001 Пользователь Сообщений: 1 |
#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] Расчет настроен на «Ручной»
Это одна из самых распространенных причин и первая проверка, которую нужно выполнить. Иногда параметр расчета настраивается на «ручной», и это основной сбой, заставляющий ячейки не обновлять формулы в Microsoft Excel. Вы можете решить эту проблему.
Запустите Excel, нажмите « Вкладка формул », а затем кнопку « Параметры расчета ». Теперь установите для параметра расчета значение Автоматический .
Этот параметр можно изменить с помощью макросов или других книг Excel, открытых ранее. Следовательно, если вы не знаете об этом параметре, это может быть причиной этой проблемы.
2] Ячейка отформатирована как текст .
Случайное форматирование ячеек, включая формулы, как « Текст » может стать еще одной проблемой, вызывающей эту проблему. В текстовом формате ячейка не будет рассчитываться так, как предполагалось.
Нажмите на ячейку и проверьте группу номеров на вкладке «Главная». Если отображается « Текст », измените его на « Общие », используя раскрывающееся меню.
Теперь пересчитайте формулу в ячейке, дважды щелкнув по ячейке и нажав « Ввод» .
3] Показать кнопку “Формулы” включено
Если кнопка « Показать формулы » на вкладке «Формулы» включена, формулы не работают. Это может быть сделано случайно пользователем или кем-то, кто ранее использовал эту книгу. Эта кнопка в основном используется при аудите формул, поэтому вместо конечного результата отображается формула. Тем не менее, эта вкладка очень полезна при устранении неполадок с глюками формулы.
Чтобы это исправить, просто нажмите кнопку Показать формулы и Отключите его .
4] Пробел введен перед знаком равенства
Последняя причина может заключаться в том, что при вводе формулы, если вы ошибочно вводите пробел перед «Равным (=)», следовательно, формула не будет рассчитываться. Эту ошибку очень трудно заметить, поэтому очень часто она остается незамеченной.
Проверьте, есть ли пробел, дважды щелкнув по ячейке, если это так, удалите ее, и формула обновится.
Я надеюсь, что эти советы помогут многим из вас решить проблему с формулами Excel, которые не обновляются автоматически. Обычные пользователи Excel сталкиваются с этими проблемами не раз, но теперь вы можете решать их достаточно хорошо!
Skip to content
На чтение 2 мин. Просмотров 8.6k.
Что делает макрос: Это не редкость, когда имеется несколько сводных таблиц в одной книге. Чаще всего эти сводные таблицы ссылаются на данные, которые требует их обновления. Этот макрос поможет обновить все сводные таблицы по первому требованию.
Содержание
- Что делает макрос
- Код макроса
- Как этот код работает
- Как использовать
Что делает макрос
Этот макрос — перебирает рабочие листы, а затем перебирает сводные таблицы. На каждом цикле, макрос обновляет сводную таблицу.
Код макроса
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 первый объявляет объект под названием WS. Это создает контейнер памяти для каждого рабочего листа. Он также объявляет объект под названием PT, который держит
каждую сводную таблицу. - Шаг 2 просматривает все рабочие листы в этой книге. Обратите внимание, что мы используем ThisWorkbook вместо ActiveWorkbook.
- Шаг 3 цикл проходит через все сводные таблицы в каждом листе, а затем запускает RefreshTable метод. После макрос переходит к следующему листу. После того, как все листы были
оценены, макрос заканчивается. ActiveWorkbook относится к книге, которая в данный момент активна.
В качестве альтернативного метода для обновления всех сводных таблиц в книге, вы можете использовать ThisWorkbook.RefreshAll. Это обновляет все сводные таблицы в рабочей книге. Тем не менее, он также обновляет все таблицы запросов. Так что, если у вас есть таблицы данных, которые подключены к внешнему источнику или в Интернете, на них будет влиять метод RefreshAll. Если это не является проблемой, вы можете просто ввести ThisWorkbook.RefreshAll в стандартный модуль.
Как использовать
Для реализации этого макроса, вы можете скопировать и вставить его в стандартный модуль:
- Активируйте редактор Visual Basic, нажав ALT + F11.
- Щелкните правой кнопкой мыши имя проекта / рабочей книги в окне проекта.
- Выберите Insert➜Module.
- Введите или вставьте код.