Vba excel сохранение файла без подтверждения
Как отключить запрос на сохранение при закрытии книги?
Каждый раз, когда вы закрываете файл Excel без сохранения, появляется всплывающее окно с запросом на сохранение, чтобы подтвердить закрытие без сохранения, что может вас раздражать. Теперь я представлю вам несколько кодов VBA, чтобы вы могли отключить запрос на сохранение при закрытии книги.
Вкладка Office позволяет редактировать и просматривать в Office с вкладками и значительно упрощает работу .
- Повторное использование чего угодно: Добавляйте наиболее часто используемые или сложные формулы, диаграммы и все остальное в избранное и быстро используйте их в будущем.
- Более 20 текстовых функций: Извлечь число из текстовой строки; Извлечь или удалить часть текстов; Преобразование чисел и валют в английские слова.
- Инструменты слияния : Несколько книг и листов в одну; Объединить несколько ячеек / строк / столбцов без потери данных; Объедините повторяющиеся строки и сумму.
- Разделить инструменты : Разделение данных на несколько листов в зависимости от ценности; Из одной книги в несколько файлов Excel, PDF или CSV; От одного столбца к нескольким столбцам.
- Вставить пропуск Скрытые / отфильтрованные строки; Подсчет и сумма по цвету фона ; Отправляйте персонализированные электронные письма нескольким получателям массово.
- Суперфильтр: Создавайте расширенные схемы фильтров и применяйте их к любым листам; Сортировать по неделям, дням, периодичности и др .; Фильтр жирным шрифтом, формулы, комментарий .
- Более 300 мощных функций; Работает с Office 2007-2019 и 365; Поддерживает все языки; Простое развертывание на вашем предприятии или в организации.
Отключить запрос на сохранение с кодом VBA в Excel
Удивительный! Использование эффективных вкладок в Excel, таких как Chrome, Firefox и Safari!
Экономьте 50% своего времени и сокращайте тысячи щелчков мышью каждый день!
Здесь я представляю вам два кода VBA, чтобы отключить запрос на сохранение. Один закроет Excel без сохранения, когда вы закроете книгу напрямую, а другой закроет Excel с сохранением последнего изменения, которое вы сделали при закрытии книги.
1. Нажмите Alt + F11 открыть Microsoft Visual Basic для приложений окно.
2. Нажмите Вставить > Модули , чтобы открыть окно модуля, затем скопируйте в окно следующий код VBA.
VBA: закрыть без сохранения напрямую.
3. Нажмите Run или F5 клавишу на клавиатуре, чтобы запустить этот код. Затем, когда вы закрываете книгу Excel, она закроется напрямую, не сохраняя последнее изменение.
Если вы хотите закрыть Excel с сохранением изменений, вы можете использовать этот код VBA.
VBA: закрыть с сохранением.
Внимание: Второй VBA не работает с новыми книгами, которые вы никогда раньше не сохраняли.
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Сохраняет изменения в книге в другой файл.
Параметры
Имя сохраняемого файла. Можно включить полный путь; если этого не сделать, Microsoft Office Excel сохранит файл в текущей папке.
Одно из значений XlFileFormat, указывающих формат файла для использования при сохранении файла. Для существующего файла используемым по умолчанию форматом является последний заданный для этого файла формат, для нового файла — формат используемой версии Excel.
Строка, для которой учитывается регистр, (длиной не более 15 символов) определяющая защитный пароль, который будет назначен файлу.
Пароль защиты от записи для данного файла. Если файл сохранен с паролем и при его открытии пароль не введен, этот файл открывается только для чтения.
Значение true для создания файла резервной копии.
Одно из значений перечисления XlSaveAsAccessMode.
Одно из значений перечисления XlSaveConflictResolution.
Значение true , чтобы добавить данную книгу в список недавно использовавшихся файлов. Значение по умолчанию — false .
Игнорируется для всех языков в Microsoft Excel.
Примечание. При сохранении книги в Excel в одном из форматов CSV-файла или текстовых форматов, указанных с помощью параметра FileFormat , он использует кодовую страницу, соответствующую языку используемого языка системы на текущем компьютере.
Игнорируется для всех языков в Microsoft Excel.
Примечание. При сохранении книги в Excel в одном из форматов CSV-файла или текстовых форматов, указанных с помощью параметра FileFormat , он сохраняет эти форматы в логической структуре. Если текст, направленный слева направо, внедряется в текст, направленный справа налево, в файле или наоборот, логическая структура сохраняет содержимое файла в правильном порядке чтения для всех языков в файле независимо от направления. Если приложение используется для открытия файла, символы в каждой последовательности символов отображаются в правильном направлении согласно диапазонам значений символов в пределах кодовой страницы. (Если файл не открыт в приложении, таком как отладчик или редактор, предназначенном для отображения точной структуры памяти файла.)
Значение true — сохранение файлов с языковыми настройками Excel (включая параметры панели управления). Значение false (по умолчанию) — сохранение файлов с языковыми настройками VBA.
Комментарии
Visual Studio не поддерживает сохранение книги в качестве общей книги.
Необязательные параметры
Дополнительные сведения о необязательных параметрах см. в разделе необязательные параметры в решениях Office.
добрый день, скажите как закрыть ексель (полностью выйти) с сохранением под таким же названием и без предупреждения
скажите что в этом коде не так((((
Sub вава()
Range("A1") = 1
Workbooks.Application.DisplayAlerts = False
Excel.ActiveWorkbook.SaveAs ("rl.xlsm")
Workbooks.Close
End Sub
добрый день, скажите как закрыть ексель (полностью выйти) с сохранением под таким же названием и без предупреждения
скажите что в этом коде не так((((
Sub вава()
Range("A1") = 1
Workbooks.Application.DisplayAlerts = False
Excel.ActiveWorkbook.SaveAs ("rl.xlsm")
Workbooks.Close
End Sub
Sub вава()
Range("A1") = 1
Workbooks.Application.DisplayAlerts = False
Excel.ActiveWorkbook.SaveAs ("rl.xlsm")
Workbooks.Close
End Sub
' подавляет предупреждения Excel
Workbooks.Application.DisplayAlerts = False
' сохраняет книгу в файл С ДРУГИМ именем
Excel.ActiveWorkbook.SaveAs ("rl.xlsm")
' сохраняет книгу в файл С ТЕМ ЖЕ именем
Excel.ActiveWorkbook.Save
' закрывает книгу
Workbooks.Close
' закрыть с сохранением (без запроса подтверждения пользователя, даже если .DisplayAlerts = True)
Workbooks.Close True
' закрыть без сохранения (без запроса подтверждения пользователя, даже если .DisplayAlerts = True)
Workbooks.Close False
' закрыть Excel (закроется только если в этом же Application больше нет открытых и не сохраненных книг,
' иначе будет запрашивать подтверждения сохранения, при .DisplayAlerts = True)
Application.Quit
' подавляет предупреждения Excel
Workbooks.Application.DisplayAlerts = False
' сохраняет книгу в файл С ДРУГИМ именем
Excel.ActiveWorkbook.SaveAs ("rl.xlsm")
' сохраняет книгу в файл С ТЕМ ЖЕ именем
Excel.ActiveWorkbook.Save
' закрывает книгу
Workbooks.Close
' закрыть с сохранением (без запроса подтверждения пользователя, даже если .DisplayAlerts = True)
Workbooks.Close True
' закрыть без сохранения (без запроса подтверждения пользователя, даже если .DisplayAlerts = True)
Workbooks.Close False
' закрыть Excel (закроется только если в этом же Application больше нет открытых и не сохраненных книг,
' иначе будет запрашивать подтверждения сохранения, при .DisplayAlerts = True)
Application.Quit
' подавляет предупреждения Excel
Workbooks.Application.DisplayAlerts = False
' сохраняет книгу в файл С ДРУГИМ именем
Excel.ActiveWorkbook.SaveAs ("rl.xlsm")
' сохраняет книгу в файл С ТЕМ ЖЕ именем
Excel.ActiveWorkbook.Save
' закрывает книгу
Workbooks.Close
' закрыть с сохранением (без запроса подтверждения пользователя, даже если .DisplayAlerts = True)
Workbooks.Close True
' закрыть без сохранения (без запроса подтверждения пользователя, даже если .DisplayAlerts = True)
Workbooks.Close False
' закрыть Excel (закроется только если в этом же Application больше нет открытых и не сохраненных книг,
' иначе будет запрашивать подтверждения сохранения, при .DisplayAlerts = True)
Application.Quit
все отлично)) спасибки. вот чего я хотел)
Workbooks.Application.DisplayAlerts = False
Excel.ActiveWorkbook.Save
Application.Quit
все отлично)) спасибки. вот чего я хотел)
Workbooks.Application.DisplayAlerts = False
Excel.ActiveWorkbook.Save
Application.Quit 85Muslim85
Workbooks.Application.DisplayAlerts = False
Excel.ActiveWorkbook.Save
Application.Quit Автор - 85Muslim85
Дата добавления - 21.03.2015 в 14:35
Решил решить (sory за тавтологию) задачку при помощи макрокодера:
Сохранить изменения в текущем файле (1), сохранить как этот же файл в другой папке (2) с закрытием текущего файла (3) и открыть из новой папки новый файл (4).
Учитывая, что макрокодер не записывает команду Сохранить как (или я не правильно делаю), я пошел длинным путем: записал каждое действие по отдельности + нашел в интернете отдельные макросы и вот что получилось:
[vba]
Можете закидать помидорами, по другому не умею =)
Протестировал каждый макрос по отдельности и затолкал в один макрос.
Затык макроса в моменте когда закрываю текущую книгу и пытаюсь открыть сохраненный как файл. То есть файл не открывается при закрытом файле откуда запущен макрос.
Подскажите, пожалуйста, где ошибаюсь
Решил решить (sory за тавтологию) задачку при помощи макрокодера:
Сохранить изменения в текущем файле (1), сохранить как этот же файл в другой папке (2) с закрытием текущего файла (3) и открыть из новой папки новый файл (4).
Учитывая, что макрокодер не записывает команду Сохранить как (или я не правильно делаю), я пошел длинным путем: записал каждое действие по отдельности + нашел в интернете отдельные макросы и вот что получилось:
[vba]
Можете закидать помидорами, по другому не умею =)
Протестировал каждый макрос по отдельности и затолкал в один макрос.
Затык макроса в моменте когда закрываю текущую книгу и пытаюсь открыть сохраненный как файл. То есть файл не открывается при закрытом файле откуда запущен макрос.
Подскажите, пожалуйста, где ошибаюсь Anis625
Решил решить (sory за тавтологию) задачку при помощи макрокодера:
Сохранить изменения в текущем файле (1), сохранить как этот же файл в другой папке (2) с закрытием текущего файла (3) и открыть из новой папки новый файл (4).
Учитывая, что макрокодер не записывает команду Сохранить как (или я не правильно делаю), я пошел длинным путем: записал каждое действие по отдельности + нашел в интернете отдельные макросы и вот что получилось:
[vba]
Можете закидать помидорами, по другому не умею =)
Протестировал каждый макрос по отдельности и затолкал в один макрос.
Затык макроса в моменте когда закрываю текущую книгу и пытаюсь открыть сохраненный как файл. То есть файл не открывается при закрытом файле откуда запущен макрос.
Подскажите, пожалуйста, где ошибаюсь Автор - Anis625
Дата добавления - 28.02.2019 в 23:21
Попробовал поменять местами последние две команды:
Закрывается Сохраненная как книга, а нужно чтобы она осталась открытой, а исходный файл закрылся
Попробовал поменять местами последние две команды:
Закрывается Сохраненная как книга, а нужно чтобы она осталась открытой, а исходный файл закрылся Anis625
Закрывается Сохраненная как книга, а нужно чтобы она осталась открытой, а исходный файл закрылся Автор - Anis625
Дата добавления - 28.02.2019 в 23:51
ActiveWorkbook - активный файл, а Вам нужно ThisWorkbook - тот файл, в котором находится исполняемый макрос
Но дело даже не в этом. Когда Вы пересохраняете файл в другую папку с помощью SaveAs (а не SaveCopyAs) , то это уже не тот файл, который Вы открыли первоначально, а тот, который в другой папке, сохраненный с SaveAs. Поэтому открывать его еще раз не нужно, он уже открыт. А вот тот файл, из которого Вы запускали макрос - он закрыт. Поэтому Вам нужно только 2 строки кода
[vba]
[/vba]
И да, если Вы закрываете файл, в котором выполняется макрос, то этот макрос тоже закрывается и конечно прекращает свою работу
ActiveWorkbook - активный файл, а Вам нужно ThisWorkbook - тот файл, в котором находится исполняемый макрос
Но дело даже не в этом. Когда Вы пересохраняете файл в другую папку с помощью SaveAs (а не SaveCopyAs) , то это уже не тот файл, который Вы открыли первоначально, а тот, который в другой папке, сохраненный с SaveAs. Поэтому открывать его еще раз не нужно, он уже открыт. А вот тот файл, из которого Вы запускали макрос - он закрыт. Поэтому Вам нужно только 2 строки кода
[vba]
[/vba]
И да, если Вы закрываете файл, в котором выполняется макрос, то этот макрос тоже закрывается и конечно прекращает свою работу _Boroda_
[/vba]
И да, если Вы закрываете файл, в котором выполняется макрос, то этот макрос тоже закрывается и конечно прекращает свою работу Автор - _Boroda_
Дата добавления - 01.03.2019 в 00:10
_Boroda_, благодарю Вас за помощь, получилось именно так как нужно =)
И спасибо Вам за краткий ликбез по макросам
Подскажите, пожалуйста, почему макрокодер не записывает команду Сохранить как? После запуска макрокодера нажимаю сохранить (через иконку), потом Файл-Сохранить как - Выбираю папку - Сохраняю - Заканчиваю запись. Макрос записывает только команду [vba]
_Boroda_, благодарю Вас за помощь, получилось именно так как нужно =)
И спасибо Вам за краткий ликбез по макросам
Подскажите, пожалуйста, почему макрокодер не записывает команду Сохранить как? После запуска макрокодера нажимаю сохранить (через иконку), потом Файл-Сохранить как - Выбираю папку - Сохраняю - Заканчиваю запись. Макрос записывает только команду [vba]
И спасибо Вам за краткий ликбез по макросам
Подскажите, пожалуйста, почему макрокодер не записывает команду Сохранить как? После запуска макрокодера нажимаю сохранить (через иконку), потом Файл-Сохранить как - Выбираю папку - Сохраняю - Заканчиваю запись. Макрос записывает только команду [vba]
Данный макрос, помещённый в Personal.xls, при его вызове сохраняет копию активной книги в заданной в диалоге выбора папке.
Путь к папке для сохранения копий хранится в коллекции Names самой сохраняемой книги. Поэтому путь сохранения копии приходится задавать только один раз - при первом сохранении копии. В последующем диалог сохранения копии будет открываться уже на нужной папке.
Сохраняемые копии имеют то же имя, что и файл-оригинал, но с приписанным перед расширением суффиксом - датой и временем сохранения копии.
[vba]
Sub Save_Copy_As()
'---------------------------------------------------------------------------------------
' Procedure : Save_Copy_As
' Author : Alex_ST
' DateTime : 07.02.2012, 17:05
' URL : http://www.excelworld.ru/forum/3-1293-14737-16-1328619875
' Purpose : Сохранение копии активного файла
' Notes : Путь сохранения копий хранится в коллекции .Names книги (в именованном диапазоне)
'---------------------------------------------------------------------------------------
Const sPath_in_Names = "Path4SaveCopyAs" ' имя элемента коллекции .Names, в котором должен храниться путь для сохранения копий файла
Dim sSuff$: sSuff = " [" & Format(Now, "yyyy/mm/dd hh-mm'ss''") & "]" ' суффикс к имени файла копии - дата и время сохренения копии файла
Dim FileName, sExp$, sDirPath$, sFullFilePath$, sNewPath$
Dim bReadOnlyRecommended As Boolean
With ActiveWorkbook
FileName = .Name ' например, "Книга1.xls"
sExp = Right(FileName, Len(FileName) - InStrRev(FileName, ".") + 1) ' расширение файла вместе с точкой (например, ".xls")
FileName = Left(FileName, Len(FileName) - Len(sExp)) & sSuff & sExp ' например, "Книга1 [2012.02.06 15-24'39''].xls"
On Error Resume Next
sDirPath = .Names(sPath_in_Names).Value ' считать из коллекции .Names значение, ранее сохраненное под именем sPath_in_Names
If Err Then .Names.Add sPath_in_Names, .Path & "\": sDirPath = .Names(sPath_in_Names).Value ' если считать не удалось, значит путь ранее не задавался и он для первого раза задаётся равным ActiveWorkbook.Path
sDirPath = Mid(sDirPath, 3, Len(sDirPath) - 3) ' убрать из считанного значения в начале "= и в конце "
sDirPath = sDirPath & IIf(Right(sDirPath, 1) = "\", "", "\") ' на всякий случай (если имя было задано в ручную и при этом не верно - без слэша)
.Names(sPath_in_Names).Value = sDirPath ' запомнить путь сохранения копий в коллекции .Names под именем sPath_in_Names
sFullFilePath = sDirPath & FileName ' полный путь сохранения вместе с полным именем копии
REPEAT_:
FileName = Application.GetSaveAsFilename(InitialFileName:=sFullFilePath, _
FileFilter:="Excel Files (*" & sExp & "), *" & sExp & ", All Files (*.*),*.*", _
Title:="Сохранение копии файла") 'задать путь сохранения и имя копии файла в окне выбора
If VarType(FileName) = vbBoolean Then Exit Sub ' если нажали "Отмена", то FileName = False, если "Сохранить" - полный путь к файлу вместе с его именем
If FileName = .FullName Then MsgBox "Здесь нельзя сохранить файл под таким именем!", 16, "Ошибка": GoTo REPEAT_
sDirPath = Left(FileName, InStrRev(FileName, "\")) ' путь к папке сохранения копий без имени файла
.Names(sPath_in_Names).Value = sDirPath ' запомнить выбранный в диалоге путь в коллекции .Names под именем sPath_in_Names
bReadOnlyRecommended = .ReadOnlyRecommended ' запомнить параметры исходного файла
.ReadOnlyRecommended = --(MsgBox("Рекомендовать открывать файл только для чтения?", 36) - 7) ' MsgBox Argument 4==vbYesNo 32==vbQuestion, MsgBox Return Values: vbYes=6, vbNo=7
.SaveCopyAs FileName
.ReadOnlyRecommended = bReadOnlyRecommended ' восстановить параметры исходного файла
End With
End Sub
Данный макрос, помещённый в Personal.xls, при его вызове сохраняет копию активной книги в заданной в диалоге выбора папке.
Путь к папке для сохранения копий хранится в коллекции Names самой сохраняемой книги. Поэтому путь сохранения копии приходится задавать только один раз - при первом сохранении копии. В последующем диалог сохранения копии будет открываться уже на нужной папке.
Сохраняемые копии имеют то же имя, что и файл-оригинал, но с приписанным перед расширением суффиксом - датой и временем сохранения копии.
[vba]
Sub Save_Copy_As()
'---------------------------------------------------------------------------------------
' Procedure : Save_Copy_As
' Author : Alex_ST
' DateTime : 07.02.2012, 17:05
' URL : http://www.excelworld.ru/forum/3-1293-14737-16-1328619875
' Purpose : Сохранение копии активного файла
' Notes : Путь сохранения копий хранится в коллекции .Names книги (в именованном диапазоне)
'---------------------------------------------------------------------------------------
Const sPath_in_Names = "Path4SaveCopyAs" ' имя элемента коллекции .Names, в котором должен храниться путь для сохранения копий файла
Dim sSuff$: sSuff = " [" & Format(Now, "yyyy/mm/dd hh-mm'ss''") & "]" ' суффикс к имени файла копии - дата и время сохренения копии файла
Dim FileName, sExp$, sDirPath$, sFullFilePath$, sNewPath$
Dim bReadOnlyRecommended As Boolean
With ActiveWorkbook
FileName = .Name ' например, "Книга1.xls"
sExp = Right(FileName, Len(FileName) - InStrRev(FileName, ".") + 1) ' расширение файла вместе с точкой (например, ".xls")
FileName = Left(FileName, Len(FileName) - Len(sExp)) & sSuff & sExp ' например, "Книга1 [2012.02.06 15-24'39''].xls"
On Error Resume Next
sDirPath = .Names(sPath_in_Names).Value ' считать из коллекции .Names значение, ранее сохраненное под именем sPath_in_Names
If Err Then .Names.Add sPath_in_Names, .Path & "\": sDirPath = .Names(sPath_in_Names).Value ' если считать не удалось, значит путь ранее не задавался и он для первого раза задаётся равным ActiveWorkbook.Path
sDirPath = Mid(sDirPath, 3, Len(sDirPath) - 3) ' убрать из считанного значения в начале "= и в конце "
sDirPath = sDirPath & IIf(Right(sDirPath, 1) = "\", "", "\") ' на всякий случай (если имя было задано в ручную и при этом не верно - без слэша)
.Names(sPath_in_Names).Value = sDirPath ' запомнить путь сохранения копий в коллекции .Names под именем sPath_in_Names
sFullFilePath = sDirPath & FileName ' полный путь сохранения вместе с полным именем копии
REPEAT_:
FileName = Application.GetSaveAsFilename(InitialFileName:=sFullFilePath, _
FileFilter:="Excel Files (*" & sExp & "), *" & sExp & ", All Files (*.*),*.*", _
Title:="Сохранение копии файла") 'задать путь сохранения и имя копии файла в окне выбора
If VarType(FileName) = vbBoolean Then Exit Sub ' если нажали "Отмена", то FileName = False, если "Сохранить" - полный путь к файлу вместе с его именем
If FileName = .FullName Then MsgBox "Здесь нельзя сохранить файл под таким именем!", 16, "Ошибка": GoTo REPEAT_
sDirPath = Left(FileName, InStrRev(FileName, "\")) ' путь к папке сохранения копий без имени файла
.Names(sPath_in_Names).Value = sDirPath ' запомнить выбранный в диалоге путь в коллекции .Names под именем sPath_in_Names
bReadOnlyRecommended = .ReadOnlyRecommended ' запомнить параметры исходного файла
.ReadOnlyRecommended = --(MsgBox("Рекомендовать открывать файл только для чтения?", 36) - 7) ' MsgBox Argument 4==vbYesNo 32==vbQuestion, MsgBox Return Values: vbYes=6, vbNo=7
.SaveCopyAs FileName
.ReadOnlyRecommended = bReadOnlyRecommended ' восстановить параметры исходного файла
End With
End Sub
С уважением,
Алексей
MS Excel 2003 - the best.
Читайте также: