Макрос не сохранен в Excel

Обновлено: 05.07.2024

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

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

Сохранение книги с поддержкой макросов

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

Перейдите на вкладку "Файл" и выберите "Сохранить как".

Появится диалоговое окно "Сохранить как".

Введите имя и выберите место для своей книги.

Нажмите стрелку раскрывающегося списка "Тип файла".

Появится список типов файлов.

Выберите книгу Excel с поддержкой макросов.

Excel добавляет к имени файла расширение .xlsm.

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

image0.jpg

Открыть книгу с поддержкой макросов

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

Откройте книгу, содержащую макрос, так же, как любую другую книгу.

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

Если вы знаете, откуда появился макрос, нажмите кнопку "Включить содержимое".

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

Об этой статье

Эта статья взята из книги:

Об авторе книги:

Дайан Кёрс владеет и управляет All Business Service, основанной в 1988 году компанией по обучению и консультированию по программному обеспечению, которая обслуживает центральную часть штата Индиана. Ее область знаний уже давно связана с компьютерной обработкой текстов, электронными таблицами и графикой. Она также проводит обучение и поддержку программного обеспечения для бухгалтерского учета Peachtree. Авторский опыт Дианы включает более 40 книг по таким темам, как безопасность ПК, Microsoft Windows, Microsoft Office, Microsoft Works, WordPerfect, Paint Shop Pro, Lotus SmartSuite, Quicken, Microsoft Money и Peachtree Accounting. Многие из этих названий были переведены на другие языки, такие как французский, голландский, болгарский, испанский и греческий. Она также разработала и написала множество учебных пособий для своих клиентов.
Диана и ее муж любят проводить свободное время, рыбача, путешествуя и играя со своими четырьмя внуками и их йоркширским терьером.

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

Я был бы признателен, если бы вы смогли сэкономить мои 4 часа работы.



Я сделал это однажды в проекте COBOL в колледже. Вы хотите поговорить о скуке. Если приведенное ниже решение для автоматического восстановления не помогает, к сожалению, вам придется переписать код.

Лично я немного зануда в вопросах сохранения. Таким образом, мои рабочие книги всегда сохраняют датированную копию (с принудительным форматом xlsm), копируют все относящиеся к коду материалы (рабочий лист, пользовательскую форму, модули, класс) в датированные файлы (формат даты с точностью до секунд) и, наконец, сортируют устаревшие копии для повторного использования. бин (не убивать). Love Excel сбои, ошибки, искажение формата, отключение электричества. (у меня все было, но проблем нет ;-) )

Также проверьте корзину, поищите в Google: где находится папка автосохранения в Excel? Как восстановить несохраненные файлы Excel Перейдите в ФАЙЛ -> Открыть. Выберите Последние книги. Прокрутите вниз и нажмите кнопку «Восстановить несохраненные книги» внизу списка. Примечание. . Когда появится диалоговое окно «Открыть», просто выберите нужный файл и нажмите «Открыть».

2 ответа 2

Вы потеряли работу.

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

Если только. возможно, у вас включена функция Excel автосохранение:

Параметры Excel / Сохранить

Посмотрите в %appdata%\Microsoft\Excel ; если повезет, вы найдете копию своей работы, сохраненную в виде файла .xlsb, и все, что вы потеряете, — это 10 минут работы.Если повезет.

Во время написания ядра я несколько раз нажимал кнопку сохранения в редакторе

VBE не сохраняет. Если вы откроете VBE в совершенно новой несохраненной книге и нажмете кнопку [Сохранить] VBE, произойдет следующее: VBE вызовет механизм сохранения хост-приложения, и, таким образом, Excel предложит вам ввести имя файла.

Если вы действительно нажали кнопку [Сохранить] несколько раз в редакторе, вы либо сохранили свою работу, либо явным образом отменили ее. диалоговое окно «Сохранить как», которое появлялось каждый раз — в этом случае ваша работа действительно потеряна.

Если вы нажали кнопку [Сохранить], а Excel не предложил вам ввести имя файла, значит, вы сохранили его. Попробуйте найти его в последних документах Excel.

Использование макросов VBA в Excel может значительно сэкономить время. Вы можете автоматизировать множество повторяющихся задач и создавать новые функции и функции в Excel с помощью простых кодов макросов VBA.

Но в некоторых случаях может потребоваться удалить все макросы из книги Excel (или удалить только определенные макросы).

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

В этом руководстве я покажу вам несколько очень простых способов удаления макросов из книги в Microsoft Excel.

Итак, приступим!

Это руководство охватывает:

Удалить все макросы, сохранив файл в формате XLSX

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

По замыслу у вас не может быть кода макроса VBA в формате файла XLSX. В противном случае он будет удален автоматически при сохранении файла Excel.

В Excel можно использовать макросы только в форматах .XLSM, .XLSB и более ранних форматах .XLS. При сохранении книги в любом другом формате макросы немедленно теряются.

Предположим, у вас есть файл с именем Example.xlsm (с макросами). Ниже приведены шаги по удалению всех макросов из этого файла:

Вот оно! Теперь ваш файл не содержит макросов.

Этот метод удобен тем, что удаляет все макросы из текущей книги Excel за один раз. Однако, если вы хотите удалить некоторые макросы и удалить некоторые, этот метод вам не подойдет (см. тот, который использует для этого диалоговое окно «Макрос»).

Еще одним преимуществом этого метода является то, что у вас все еще есть копия исходного файла со всеми макросами (на случай, если он понадобится вам в будущем).

Удалить определенные макросы из диалогового окна макросов

Хотя предыдущий метод удалит все макросы. этот позволяет вам выбрать те, которые вы хотите удалить.

И если вы хотите удалить все макросы, вы также можете это сделать.

Предположим, у вас есть файл с именем Example.xlsm, содержащий несколько макросов.

Ниже приведены действия по удалению макроса из этой книги:

Если вы хотите удалить несколько (или все) макросов, повторите шаги 4 и 5.

Примечание. Если вы не видите вкладку разработчика, нажмите здесь, чтобы узнать, как отобразить вкладку разработчика на ленте в Excel. Кроме того, вы также можете использовать сочетание клавиш — ALT + 8, чтобы открыть диалоговое окно макроса.

Кроме того, вы также можете нажать на вкладку "Виды", щелкнуть раскрывающийся список "Макросы", а затем выбрать параметр "Просмотр макросов". При этом также откроется диалоговое окно "Макросы".

Хотя этот метод прекрасно работает, он позволяет удалять только те макросы, которые хранятся в модуле в редакторе Visual Basic. Если у вас есть макросы событий (в определенных рабочих листах или ThisWorkbook) или макросы в личной книге макросов, их нельзя удалить с помощью этого метода.

Удалить модуль с макросом

Еще один способ удалить макросы — перейти в редактор Visual Basic и удалить макросы оттуда.

Этот метод дает вам максимальный контроль, поскольку вы можете получить доступ ко всем макросам (будь то в модуле, объектах или личной книге макросов).

Ниже приведены действия по удалению макроса из редактора Visual Basic:

Если у вас есть модуль с кодом, который вы хотите удалить, вы можете щелкнуть правой кнопкой мыши объект модуля и выбрать параметр «Удалить модуль».

Удалить модуль

Итак, вот три способа удаления макросов из книги Microsoft Excel.

Чтобы сохранить книгу Excel с помощью VBA, необходимо использовать метод SAVE для написания макроса. И в этом макросе вам нужно указать книгу, которую вы хотите сохранить, а затем использовать метод SAVE. Когда вы запускаете этот код, он работает как сочетание клавиш (Control + S).


  1. Укажите шляпу рабочей книги, которую вы хотите сохранить.
  2. Введите точку, чтобы получить список всех свойств и методов.
  3. Выберите один из способов «Сохранить» или введите «Сохранить».
  4. В конце запустите код, чтобы сохранить книгу.

В этом руководстве мы рассмотрим различные способы сохранения книги. Поэтому не забудьте открыть редактор VBA на вкладке разработчика, чтобы использовать код из этого руководства.

Сохраните ActiveWorkbook

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

Когда вы используете ActiveWorkbook в качестве рабочей книги, VBA всегда обращается к рабочей книге, которая активна, независимо от того, в каком файле вы пишете код.

Сохраните рабочую книгу, в которой вы пишете код

Если вы хотите сохранить файл, в котором вы пишете код, вам нужно использовать «ThisWorkbook» вместо имени книги.

Сохранить все открытые книги

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

Приведенный выше код использует цикл FOR EACH в каждой книге, а также метод SAVE для каждого файла один за другим.

Примечание. Если вы пытаетесь сохранить книгу с помощью метода СОХРАНИТЬ, который еще не сохранен, Excel покажет диалоговое окно с запросом вашего разрешения на сохранение этого файла, а затем вам нужно выбрать, хотите ли вы сохранить этот файл в местоположении по умолчанию в формате по умолчанию.

Теперь вот что: поскольку вы используете макрос для сохранения книги, этот файл должен быть сохранен в формате с поддержкой макросов, и лучший способ справиться с этой ситуацией — использовать метод СОХРАНИТЬ КАК (мы см. в следующем разделе этого руководства).

Сохранить как файл Excel

Чтобы СОХРАНИТЬ еще не сохраненный файл с помощью VBA, необходимо использовать метод СОХРАНИТЬ КАК. В этом методе вы можете указать имя файла и путь, по которому вы хотите сохранить файл, и, кроме того, вы можете определить еще десять аргументов.

В следующем коде у вас нет аргументов для метода "СОХРАНИТЬ КАК".


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

Сохранить как файл в текущем местоположении

По умолчанию VBA использует текущее местоположение для сохранения файла. Когда вы пишете код с помощью метода СОХРАНИТЬ КАК и просто указываете имя, этот файл сразу попадает в текущую папку. В следующем коде вы можете увидеть, где у вас есть , который сохраняет активную книгу.


Сохранить как файл в определенном месте

Аргумент имени файла также позволяет использовать путь к местоположению, если вы хотите использовать другое место для сохранения файла.


В приведенном выше коде у вас есть путь в аргументе FileName, и VBA использует этот путь к файлу.

Примечание. Вы также можете использовать этот метод, чтобы проверить, существует ли книга в папке или нет, прежде чем использовать метод СОХРАНИТЬ КАК, чтобы сохранить ее в определенном месте, и вы можете узнать больше о методе СОХРАНИТЬ КАК здесь.

Читайте также: