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, вы можете с легкостью исправить проблему и восстановить работоспособность. Если же сложности в работе возникают, вы всегда можете воспользоваться инструкцией в статье.

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

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

Хитрости »

1 Май 2011              131631 просмотров


Почему не работает макрос?

Предположим, Вы скачали файл с данного сайта с примером макроса, открываете файл, но макросы в нем не работают! Как такое может быть? Неужели автор сайта выложил неработающий пример и не знает об этом? И тем более как может случиться такое, что Вы перенесли со своего ПК на другой ПК файл с рабочими макросами на флешке, запускаете, а он не работает… Почему? Вроде все правильно делаете, да ведь и у Вас работает на ПК. И начинает закрадываться мысль: «А чем же этот ПК и Excel на нем такие особенные?». А ответ может быть прост — перед выполнением макроса не было разрешено выполнение этих самых макросов. Да, в большинстве случаев по умолчанию выполнение макросов в Excel отключено. И их надо включить. Для этого:

  • Excel 2003:
    Сервис-Безопасность-Уровень макросов «Низкий»
  • Excel 2007:
    Кнопка ОфисПараметры Excel(Excel Options)Центр управления безопасностью(Trust Centr)Параметры центра управления безопасностью(Trust Centr Settings)Параметры макросов(Macro Settings)Разрешить все макросы(Enable All Macros)
  • Excel 2010-2016:
    Файл(File)Параметры(Options)Центр управления безопасностью(Trust Centr)Параметры центра управления безопасностью(Trust Centr Settings)Параметры макросов(Macro Settings)Разрешить все макросы(Enable All Macros)
  • ВАЖНО! После изменения параметров безопасности макросов необходимо перезапустить приложение Excel: закрыть его полностью(т.е. закрыть все файлы Excel) и открыть заново. Только после этого изменения вступят в силу.

Если макросы уже включены, но некоторые макросы отказываются работать (как правило те, которые записаны в модулях листов и книг и запускаются при наступлении определенного события — Worksheet_SelectionChange (выделение ячеек), Worksheet_Change (изменение значений ячеек) и т.п.), то скорее всего когда-то вы выполнили какой-нибудь макрос и он отключил отслеживание событий. Тогда надо в любую активную книгу добавить модуль(переходим в редактор VBA(Alt+F11) —InsertModule), вставить в него приведенный ниже код и запустить:

Sub Reset_Events()
    Application.EnableEvents = True
End Sub

чтобы запустить(выполнить) данный макрос макрос необходимо установить курсор в любое место между Sub и End Sub и нажать клавишу F5.

Так же см.:
Управление безопасностью макросов
Как запустить файл с включенными макросами?


Статья помогла? Поделись ссылкой с друзьями!

  Плейлист   Видеоуроки


Поиск по меткам



Access
apple watch
Multex
Power Query и Power BI
VBA управление кодами
Бесплатные надстройки
Дата и время
Записки
ИП
Надстройки
Печать
Политика Конфиденциальности
Почта
Программы
Работа с приложениями
Разработка приложений
Росстат
Тренинги и вебинары
Финансовые
Форматирование
Функции Excel
акции MulTEx
ссылки
статистика

Perhaps your personal workbook is not opening when you open/create another workbook.

here are the steps you need to make sure are done, in order for your macros to be visible.

1- First place your macros in a file.
2- make sure that your Macros are not «Private Sub»
3- once you placed your macros in the file, then under the view tab click «Hide» ( you do this becuase when your personal workbook opens, it does not the workbook itself)
4- Now, you need to save the workbook with the xlsb or xlsm format and place it in the following start up directory C:UsersYourUserNameAppDataRoamingMicrosoftExcelXLSTART
Replace the YourUsername to your login account name.
5- now you are all set. when you open any workbook, whether new or an existing other workbook, the personal workbook opens but you will not see it, as it is hidden, but all your macros will be showing in the macro section.

Hope this helps.

Книга не видит макросы в модуле листа

Manyasha

Дата: Вторник, 26.04.2016, 23:29 |
Сообщение № 1

Группа: Модераторы

Ранг: Старожил

Сообщений: 2198


Репутация:

898

±

Замечаний:
0% ±


Excel 2010, 2016

Всем привет!

У меня опять проблема с Mac’oм, которого у меня нет :D
Написала простенький макрос для события Worksheet_Change. Макрос должен добавлять новую строку, если пользователь заполняет последнюю строку по проекту (над строкой Итого).
У меня все работает, на mace ничего не добавляется.

Цитата

Office 2011 Mac вроде как

Написала[vba]

Код

Private Sub Worksheet_Change(ByVal Target As Range)
MsgBox «1»
End Sub

[/vba]тоже ничего.
Обработка событий включена.
Подскажите, пожалуйста, в чем может быть проблема? С учетом того, что файл будет сохраняться и на винде и на маке, возможно ли что-то придумать или лучше обходиться одними формулами?

Кстати, раньше в этом же модуле листа был еще один макрос на кнопке, тоже не запускался. Вот что показывал (переназначение макроса не помогло):


Проблему решила переносом макроса в обычный модуль.


ЯД: 410013299366744 WM: R193491431804

 

Ответить

_Boroda_

Дата: Вторник, 26.04.2016, 23:36 |
Сообщение № 2

Группа: Модераторы

Ранг: Местный житель

Сообщений: 16618


Репутация:

6465

±

Замечаний:
0% ±


2003; 2007; 2010; 2013 RUS

Марин, Мак не работает с макросами в модуле листа.
Сам не пробовал, но слышал где-то.


Скажи мне, кудесник, любимец ба’гов…
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995

 

Ответить

Pelena

Дата: Вторник, 26.04.2016, 23:47 |
Сообщение № 3

Группа: Админы

Ранг: Местный житель

Сообщений: 18797


Репутация:

4284

±

Замечаний:
±


Excel 2016 & Mac Excel

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

А вот то, что

файл будет сохраняться и на винде и на маке

грозит тем, что ни там, ни там нормально работать не будет :(


«Черт возьми, Холмс! Но как??!!»
Ю-money 41001765434816

 

Ответить

Manyasha

Дата: Вторник, 26.04.2016, 23:54 |
Сообщение № 4

Группа: Модераторы

Ранг: Старожил

Сообщений: 2198


Репутация:

898

±

Замечаний:
0% ±


Excel 2010, 2016

Ага, понятно. Жалко конечно, но хотя бы я теперь знаю, что нужно что-то другое придумывать.
Саша, Лена, спасибо большое!


ЯД: 410013299366744 WM: R193491431804

 

Ответить

_Boroda_

Дата: Среда, 27.04.2016, 00:09 |
Сообщение № 5

Группа: Модераторы

Ранг: Местный житель

Сообщений: 16618


Репутация:

6465

±

Замечаний:
0% ±


2003; 2007; 2010; 2013 RUS

В модуле листа работают макросы, относящиеся непосредственно к событиям листа

Я как раз это и имел в виду. В смысле макрос — это макрос, а обработчик событий — это не просто макрос, а обработчик. :D
Марин, а если сам макрос tt положить в обычный модуль, а в модуле листа написать на него ссылку — что-то типа
[vba]

Код

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Module1.tt
End Sub

[/vba]


Скажи мне, кудесник, любимец ба’гов…
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995

 

Ответить

Pelena

Дата: Среда, 27.04.2016, 07:58 |
Сообщение № 6

Группа: Админы

Ранг: Местный житель

Сообщений: 18797


Репутация:

4284

±

Замечаний:
±


Excel 2016 & Mac Excel

[offtop]

макрос — это макрос, а обработчик событий — это не просто макрос, а обработчик

Вот это завернул :) [/offtop]
По теме:
создала новую книгу на Маке
скопировала туда листы из примера
скопировала текст макроса в модуль листа (именно текст)
На Маке всё работает, зато на win — нет, собственно, что и ожидалось :(
Исковеркались названия листов
Хотя, если в тексте макроса восстановить правильно слово Итого, то заработает, потому что коверкаются только заглавные буквы

Оригинальный файл так и не удалось запустить на Маке.


«Черт возьми, Холмс! Но как??!!»
Ю-money 41001765434816

 

Ответить

_Boroda_

Дата: Среда, 27.04.2016, 09:18 |
Сообщение № 7

Группа: Модераторы

Ранг: Местный житель

Сообщений: 16618


Репутация:

6465

±

Замечаний:
0% ±


2003; 2007; 2010; 2013 RUS

Хотя, если в тексте макроса восстановить правильно слово Итого, то заработает, потому что коверкаются только заглавные буквы

Лен, а они коверкаются вообще всегда или только при копи-пасте?
Кстати, а если вот так написать?
[vba]

Код

If Target.Value <> «» And Target.Offset(1) = Chr(200) & «того:» Then

[/vba]


Скажи мне, кудесник, любимец ба’гов…
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995

 

Ответить

Pelena

Дата: Среда, 27.04.2016, 09:28 |
Сообщение № 8

Группа: Админы

Ранг: Местный житель

Сообщений: 18797


Репутация:

4284

±

Замечаний:
±


Excel 2016 & Mac Excel

Они коверкаются при сохранении файла.
Посмотри на имя листа в редакторе VBA

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

Можно попробовать просто не использовать заглавные русские буквы. В идеале вообще не использовать кириллицу

К сообщению приложен файл:

1681509.jpg
(24.4 Kb)


«Черт возьми, Холмс! Но как??!!»
Ю-money 41001765434816

 

Ответить

_Boroda_

Дата: Среда, 27.04.2016, 10:05 |
Сообщение № 9

Группа: Модераторы

Ранг: Местный житель

Сообщений: 16618


Репутация:

6465

±

Замечаний:
0% ±


2003; 2007; 2010; 2013 RUS

Какая прелесть!
А Юникод тоже через …?


Скажи мне, кудесник, любимец ба’гов…
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995

 

Ответить

Manyasha

Дата: Среда, 27.04.2016, 11:21 |
Сообщение № 10

Группа: Модераторы

Ранг: Старожил

Сообщений: 2198


Репутация:

898

±

Замечаний:
0% ±


Excel 2010, 2016

макрос tt положить в обычный модуль, а в модуле листа написать на него ссылку

не помогло

Переименовала листы (codeName) с макросами на англ. и заменила все заглавные русские буквы.
Все работает! Ура!!! :hands:

Спасибо большущее за помощь! :)
UPD
выкладываю поправленный файл. Там мало что изменилось, но пусть лежит, как пример решения


ЯД: 410013299366744 WM: R193491431804

Сообщение отредактировал ManyashaСреда, 27.04.2016, 11:32

 

Ответить

Pelena

Дата: Среда, 27.04.2016, 13:59 |
Сообщение № 11

Группа: Админы

Ранг: Местный житель

Сообщений: 18797


Репутация:

4284

±

Замечаний:
±


Excel 2016 & Mac Excel


Если ты имеешь в виду функцию UNICODE(), то таки да, она возвращает одинаковые значения что для Win, что для iOS, от 1040 (А) до 1103 (я), ну и буквы Ёё выпадают из общей последовательности


«Черт возьми, Холмс! Но как??!!»
Ю-money 41001765434816

 

Ответить

I am writing VBA macros in excel 2016. Macros I write that have arguments do not show up in the Macro Table, only the ones that have no arguments. Help.

Community's user avatar

asked Dec 20, 2016 at 4:18

RFikes's user avatar

3

Macros that take arguments are not visible in the macro box because there is no point in having them there. If they need arguments to run, they cannot be run from the macro box because there is no way to supply an argument to the macro in question.

Normally, a macro shows up in the macro list when you display the
Macros dialog box (press Alt+F8), unless one of three conditions is
met:

  • The macro is a function. Functions typically return information,
    and they require information to be passed to them. Since running a
    macro from the macro list doesn’t allow either of these things to
    happen, Excel figures there is no need to list it. User-defined
    functions, which are quite useful in Excel, are not displayed in the
    Macros dialog box because they are, after all, functions.

  • The macro is
    a subroutine with parameters.
    Excel assumes that since parameters are
    necessary, and you cannot provide parameters by choosing the
    subroutine from the macro list, there is no need to list it.

  • The subroutine has been declared Private. This means that the subroutine
    is only useful to code within the module in which it is declared.

Source.

Depending on your need, a possible workaround is to use a helper-sub like this:

Sub InvisibleMacro(strArg As String)
    MsgBox("The passed argument was " & strArg)
    ' This macro won't be visible in the macro dialog because it can only be called with an argument
End Sub

Sub VisibleMacro()
    Call InvisibleMacro("Abc")
    ' This macro will be visible in the macro dialog because it requires no arguments and is not private. 
    ' It will call the "invisible" macro with a preset argument.
End Sub

You can use InputBox or the likes if you need the passed argument to be non-static. Of course, depending on what datatype you need to pass as an argument, this approach may be limited and/or require some extra hoops.

answered Dec 20, 2016 at 7:58

Vegard's user avatar

VegardVegard

3,5572 gold badges22 silver badges40 bronze badges

3

Obviously if the macro requires parameters they can’t be passed by clicking an icon.

But I have a Sub that only has one Optional parameter and that doesn’t show up in the list either when trying to attach it to an icon in the customized ribbon.

Comment out the full Sub declaration and substitute a line without parameters, attach the macro to an icon, then put back the real line. The icon will still work.

' Temporarily use the parameterless line to set things up, then put
' back the real line.  I assume this would crash if the Sub has required
' parameters.

Sub MySub()
' Sub MySub(Optional ByVal MyParm As String)
   If MyParm = "" Then MyParm = "No parameter"
   MsgBox (MyParm)
End Sub

answered Jan 13, 2018 at 8:22

RIck_R's user avatar

RIck_RRIck_R

1113 bronze badges

I know this is an older post but I had the same issue. My fix was that I had to open the macros in the VB editor and then they showed up in the macro list. from there I could add them to the ribbon and change the icons. Hope this helps.

answered Mar 19, 2019 at 13:31

Borgunit's user avatar

The macro is not listed when it has parameters, but knowing the name you should be able to simply write the name and theirs parameters when Excel prompts in the Assign Macro window, using single and double quotes.

The following example will guide you how to do it:

'mymacro "param1"'
'mymacro TRUE, FALSE'
'mymacro "param1","param2"'

fernandospr's user avatar

fernandospr

2,9542 gold badges21 silver badges43 bronze badges

answered Sep 3, 2020 at 12:19

user14214931's user avatar

My problem was that I had defined Macro directly through Visual Basic Editor in Excel and had defined it under «Class Modules» folder instead of «Modules»

Once I moved it into Modules folder, it was visible.

Hope this helps someone.

answered Aug 11, 2022 at 5:09

Ashutosh Vyas's user avatar

You probably have made macro as «Function()». To make it visible in macros list, you have to declare it as «Sub()».

answered Dec 20, 2016 at 4:53

Jayant Kumar jain's user avatar

1

Like this post? Please share to your friends:
  • Excel не открывает файлы старого формата
  • Excel не показывает листы внизу
  • Excel не открывает файлы с флешки
  • Excel не показывает листы в одном файле
  • Excel не открывает файлы с сетевого диска