Excel Сохранить Книгу Как Vba Excel • Ссылка на процедуру vba

Vba excel закрыть книгу без сохранения

В Microsoft Excel можно создать макрос Microsoft Visual Basic для приложений (VBA), который подавляет запрос на Сохранение изменений при закрытии книги. Это можно сделать, указав состояние книги, в которой хранится сохраненное свойство, или подавить все оповещения для книги.

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

Нажмите клавиши ALT + F11, чтобы запустить редактор Visual Basic.

В Microsoft Office Excel 2003 и более ранних версиях Excel в меню Сервис выберите пункт макрос , а затем — макросы.

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

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

помощью. Нажмите кнопку Microsoft Office , а затем — Параметры Excel.

байт. В категории популярные в разделе Основные параметры работы с Excelвыберите пункт Показать
. Флажок «Разработчик» на ленте и нажмите кнопку ОК.

Свойство Saved возвращает значение false , если после последнего сохранения книги были внесены изменения.

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

Пример 1: Закрытие книги без сохранения изменений

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

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

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

Кроме того, можно использовать аргумент SaveChanges метода Close .

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

Пример 2: Закрытие книги и сохранение изменений

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

Эта подпроцедура проверяет, было ли для сохраненного свойства File задано значение false. Если да, то книга была изменена с момента последнего сохранения, и эти изменения будут сохранены.

специалист
Мнение эксперта
Витальева Анжела, консультант по работе с офисными программами
Со всеми вопросами обращайтесь ко мне!
Задать вопрос эксперту
Если вы не сохраните книгу, в которую вставили макрос как Книгу с поддержкой макросов , все модули с макросами удаляться и вам придется, потом, повторно проделывать всю эту работу. Если же вам нужны дополнительные объяснения, обращайтесь ко мне!
В книге готовых макросов я нашел «Копирование столбцов на другой лист». Как сделать, чтобы при переходе из одной ячейки листа (назовем его копия) в другую копирование выполнялось с учетом изменения диапазона (постоянной длины) копируемых ячеек в листе (оригинал)? Спасибо.
Excel Сохранить Книгу Как Vba Excel • Ссылка на процедуру vba

Как вставить готовый макрос в рабочую книгу?

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

Использование с другими функциями

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

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

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

=СЦЕПИТЬ(«Максимальное значение между 10 и 50 – «;GetMaxBetween(A1:A6;10;50))

Excel Сохранить Книгу Как Vba Excel • Ссылка на процедуру vba

Можно найти товар, количество которого максимальное и находится в диапазоне от 40 до 50.

пользовательская функция GetMaxBetween находит в диапазоне B2:B9 максимальное число между 40 и 50. Затем при помощи функций ИНДЕКС+ПОИСК мы получаем название товара, которое соответствует этому максимальному значению:

Excel Сохранить Книгу Как Vba Excel • Ссылка на процедуру vba

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

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

специалист
Мнение эксперта
Витальева Анжела, консультант по работе с офисными программами
Со всеми вопросами обращайтесь ко мне!
Задать вопрос эксперту
Например, следующий макрос выключает дисплайалертс , закрывает активную книгу без сохранения изменений, а затем снова включает дисплайалертс. Если же вам нужны дополнительные объяснения, обращайтесь ко мне!
Дмитрий,по-моему,эти команды можно применить при выполнении какого-то макроса. Я же хочу, чтобы при нажатии пользователем кнопки или меню «Сохранить», программа предлагала сохранить этот файл под другим именем, а под этим не разрешала вообще.
Как это сделать?

Vba excel закрыть книгу без сохранения — Новости из мира ПК

  • Если рабочих файлов много, а функция нужна везде, то и копировать код придется в каждую книгу.
  • Нужно не забыть сохранить рабочую книгу в формате с поддержкой макросов (xlsm или xlsb).
  • При открытии такого файла защита от макросов будет каждый раз показывать предупреждение, которое нужно подтвердить. Многие пользователи пугаются, видя предупреждение на жёлтой полосе, которое просит их включить макросы. Чтобы не видеть это сообщение, вам нужно отключить защиту Excel полностью. Это может быть не всегда правильно и безопасно.

Теперь на счет твоих проблем с SaveAs внутри события _BeforeSave.
Тут складывается действительно забавная ситуация. Дело в том, что вызывая метод в SaveAs в этом событии мы порождаем опять же это событие, поэтому очень важно предусмотреть возможность выхода из него, не допустив зацикливания.
Происходит все следующим образом:

Как сохранять (commit) версии модуля VBA в Журнал изменений

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

Добавьте содержательный комментарий, напр. «Исходная версия» OK Готово, исходная версия сохранена в Журнал изменений.

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

Совет: пишите содержательные комментарии. Это поможет отличить версии друг от друга и найти нужную в Журнале изменений.

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

Отметьте чекбокс «Сохранять версию в Журнал изменений каждый раз, как я сохраняю книгу с изменениями».

специалист
Мнение эксперта
Витальева Анжела, консультант по работе с офисными программами
Со всеми вопросами обращайтесь ко мне!
Задать вопрос эксперту
В меню журнала или в контекстном меню по правому клику мыши выберите Сравнить с Предыдущей версией в Inquire или Сравнить с Текущей версией в Inquire. Если же вам нужны дополнительные объяснения, обращайтесь ко мне!
Установка параметров печати — довольно продолжительный процесс, поэтому советую настроить их в предварительно подготовленном шаблоне. Все параметры печати задаются в свойстве PageSetup объекта Worksheet. Но учтите, что текст в свойствах Footer или Header для Left, Right, Center суммарно не должен превышать 255 символов.

Excel ЧаВо часть II: Worksbooks и Worksheets

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

Понравилась статья? Поделиться с друзьями:
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: