powerking11 1 / 1 / 0 Регистрация: 28.04.2016 Сообщений: 103 |
||||
1 |
||||
Автосохранение книги при закрытии18.12.2020, 15:49. Показов 3060. Ответов 4 Метки vba access, vba excel (Все метки)
Нужен макрос что бы при закрытии книги, не выдавало окно с вопросом сохранения, а сохраняло сразу.
В книгу и модуль, сначала работает..
0 |
Vlad999 3827 / 2254 / 751 Регистрация: 02.11.2012 Сообщений: 5,928 |
||||||||
18.12.2020, 16:20 |
2 |
|||||||
WORD или Excel или еще где? Чтобы макрос работал его нужно вешать на событие закрытия книги.
в ворд
0 |
Kubuntovod 2670 / 786 / 176 Регистрация: 14.01.2013 Сообщений: 3,672 |
||||
18.12.2020, 17:29 |
3 |
|||
Оно?
0 |
Igor_61 89 / 49 / 18 Регистрация: 03.06.2019 Сообщений: 187 |
||||
19.12.2020, 18:10 |
4 |
|||
что бы при закрытии книги, не выдавало окно с вопросом сохранения, а сохраняло сразу В Excel:
1 |
powerking11 1 / 1 / 0 Регистрация: 28.04.2016 Сообщений: 103 |
||||
21.12.2020, 14:32 [ТС] |
5 |
|||
Igor_61, спасибо работает Добавлено через 3 минуты
Но лучше так
0 |
IT_Exp Эксперт 87844 / 49110 / 22898 Регистрация: 17.06.2006 Сообщений: 92,604 |
21.12.2020, 14:32 |
Помогаю со студенческими работами здесь При закрытии одной книги записать информацию во вторую Excel При закрытии книги VB проект остается не выгруженным Как при закрытии книги эксель — убрать иконку При открытии файл эксель подгружает иконку (.ico) по… Сделать так, чтобы при закрытии книги удалялась кнопка Вопрос, наверное, простой, но я с ним промучалась уже два дня. Как программно… Запуск макроса при закрытии любой активной рабочей книги
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: 5 |
Примечание: Мы стараемся как можно оперативнее обеспечивать вас актуальными справочными материалами на вашем языке. Эта страница переведена автоматически, поэтому ее текст может содержать неточности и грамматические ошибки. Для нас важно, чтобы эта статья была вам полезна. Просим вас уделить пару секунд и сообщить, помогла ли она вам, с помощью кнопок внизу страницы. Для удобства также приводим ссылку на оригинал (на английском языке).
Описание
В Microsoft Excel можно создать макрос Microsoft Visual Basic для приложений (VBA), который подавляет запрос на Сохранение изменений при закрытии книги. Это можно сделать, указав состояние книги, в которой хранится сохраненное свойство, или подавить все оповещения для книги.
Дополнительные сведения
ПРИМЕЧАНИЕ. Корпорация Майкрософт предоставляет примеры программирования только для иллюстрации, не выполняя либо подразумеваемых. Сюда относится, но не ограничивается подразумеваемым гарантийным обязательством о товаре или пригодности для определенной цели. В этой статье предполагается, что вы знакомы с языком программирования, который вы продемонстрировали, и с инструментами, используемыми для создания и отладки процедур. Специалисты службы поддержки Майкрософт могут объяснить особенности конкретных процедур. Однако они не изменяют эти примеры для предоставления дополнительной функциональности или создания процедур, отвечающих вашим конкретным требованиям.
Чтобы подготовиться к реализации одного из примеров ниже, выполните эти действия в первую очередь.
-
Запустите Excel и откройте новую книгу.
-
Нажмите клавиши ALT + F11, чтобы запустить редактор Visual Basic.
-
В меню Вставка выберите пункт модуль.
-
Введите пример кода макроса на лист модуля.
-
Нажмите клавиши ALT + F11, чтобы вернуться в Excel.
-
В Microsoft Office Excel 2003 и более ранних версиях Excel в меню Сервис выберите пункт макрос , а затем — макросы.
В Microsoft Office Excel 2007 в группе код на вкладке разработчик нажмите кнопку макросы .
Если вкладка разработчик
недоступна, выполните указанные ниже действия.
помощью. Нажмите кнопку Microsoft Office , а затем — Параметры Excel.
байт. В категории популярные в разделе Основные параметры работы с Excelвыберите пункт Показать
.
Флажок «Разработчик» на ленте и нажмите кнопку ОК. -
Выберите нужный макрос и нажмите кнопку выполнить.
Свойство Saved возвращает значение false , если после последнего сохранения книги были внесены изменения.
Для указания макроса, который должен выполняться при закрытии книги, можно использовать зарезервированное имя подпрограммы Auto_Close . Таким образом, вы можете управлять обработкой документа, когда пользователь закрывает документы в Excel.
Пример 1: Закрытие книги без сохранения изменений
Чтобы принудительно закрыть книгу, не сохраняя никаких изменений, введите следующий код в модуль Visual Basic этой книги:
ДоЧерний элемент Auto_Close ()
ThisWorkbook. Save = true
End Sub
Если для свойства Saved установлено значение true, приложение Excel отправляет сообщение о том, что книга уже была сохранена, и после последнего сохранения изменения не произошел.
Свойство дисплайалертс программы можно использовать для той же цели. Например, следующий макрос выключает дисплайалертс , закрывает активную книгу без сохранения изменений, а затем снова включает дисплайалертс .
Sub Клосебук ()
Application. Дисплайалертс = false
Активеворкбук. Close
Application. Дисплайалертс = true
End Sub
Кроме того, можно использовать аргумент SaveChanges метода Close .
Следующий макрос закрывает книгу без сохранения изменений.
Sub CloseBook2()
ActiveWorkbook.Close savechanges:=False
End Sub
Пример 2: Закрытие книги и сохранение изменений
Чтобы принудительно сохранить изменения в книге, введите следующий код в модуль Visual Basic этой книги:
ДоЧерний элемент Auto_Close ()
Если ThisWorkbook. Save = false, то
ThisWorkbook. Save End, если
End Sub
Эта подпроцедура проверяет, было ли для сохраненного свойства File задано значение false. Если да, то книга была изменена с момента последнего сохранения, и эти изменения будут сохранены.
Нужна дополнительная помощь?
В Excel 2007 и более поздних версиях файлы с макросами имеют другое расширение.
Файлы без vba имеют расширение xlsx.
Файлы с макросами должны быть сохранены в виде книги с поддержкой макросов с расширением xlsm.
Для обоих типов файлов также существуют варианты шаблона, т.е. xltx и xltm соответственно.
Формат файла по умолчанию для нового файла — xlsx, если вы не измените этот параметр в настройках Excel.
Если вы включите макросы vba в файл xlsx, а затем попытаетесь сохранить его, вы увидите сообщение о том, что вы не можете сохранить макросы в файле xlsx:
Если вы решите проигнорировать сообщение и сохранить файл как книгу без макросов, то примите тот факт, что макросы НЕ будут сохранены вместе с книгой.
Вы видели сообщение. Вы предприняли действие НЕ сохранять файл с макросами.
Таким образом, макросы не сохраняются вместе с файлом.
Вот как это работает.
Автоматическое снятие фильтра после закрытия файла |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
Если Вам нужно сохранить данные в конкретном документе, то поглядите на variables
.
Sub docVariables()
Dim aVar As Variable
Dim isVarExist As Boolean
Dim fName As String
isVarExist = False
fName = "Иванов Иван"
' Проверка на существование переменной
For Each aVar In ActiveDocument.Variables
If aVar.Name = "FullName" Then isVarExist = True: Exit For
Next aVar
' Если переменная уже существует, то меняем её значение
' в противном случае создаём её
If isVarExist Then
ActiveDocument.Variables("FullName").Value = fName
Else
ActiveDocument.Variables.Add Name:="FullName", Value:=fName
End If
' Обращение к переменной
MsgBox ActiveDocument.Variables("FullName").Value
' Удаление переменной
ActiveDocument.Variables("FullName").Delete
End Sub
Вот статья на эту тему: https://support.microsoft.com/en-us/kb/306281.
Данный способ подходит только MS Word, в Excel, к сожалению, variables
нет. Для него можно предложить хранение значений на скрытых листах.