Как сделать чтобы windows не спрашивал пользователя

Содержание
  1. Сохранить как — метод «Сохранить как» – Excel VBA
  2. Видеокурсы по Excel
  3. Ъпо воде
  4. Что делает метод SaveAs
  5. Сохранить как
  6. Синтаксис 1 для листа
  7. Синтаксис 2 для рабочей книги (Workbook)
  8. Описание параметра
  9. Типы файлов — Формат файла
  10. Простой пример
  11. Более сложные примеры
  12. Сохранить с паролем
  13. Сохраненные выбранные листы
  14. Сохранить с датой
  15. Сохранить с датой + именем ячейки
  16. Дополнительные коды
  17. Определение подходящего формата
  18. Диалоговые окна
  19. Сохраняется под другими именами — csv, txt, pdf
  20. Проблемы с сохранением
  21. Команды, аналогичные команде Сохранить как
  22. Сохранить копию как
  23. Закрытая книга
  24. Сохранить эту книгу
  25. Сохраните копию книги
  26. Сохранить как отдельный лист(ы)
  27. Отдельные листы
  28. Для скачивания
  29. Всего
  30. Если
  31. Павел Ласбк — автор сайта
  32. Комментарии
  33. РоманП
  34. Павел Ласбак
  35. Джон В.
  36. Павел Ласбак
  37. Джон В.
  38. Павел Ласбак
  39. Джон В.
  40. Павел Ласбак
  41. Джон В.
  42. Павел Ласбак
  43. Джон В.
  44. Питер Г
  45. Павел Ласбак
  46. Питер .Ф.
  47. Павел Ласбак
  48. Павел Хурт
  49. Пол
  50. Павел Хурт
  51. Павел Ласбак
  52. Джейкоб
  53. Житка
  54. Дэвид
  55. Ростислав
  56. Томаш
  57. Восхождение
  58. Восхождение

Сохранить как — метод «Сохранить как» – Excel VBA

Видеокурсы по Excel

В сотрудничестве с SEDUO я создал несколько видеокурсов:

  • Как работать с Excel – научитесь эффективно использовать Excel – самый популярный ( рейтинг 97 %, более 13 000 студентов, + 750 положительных отзывов ) – Получить курс
  • MaxiCourse Excel – получите лучшую работу, больше денег, станьте незаменимым ( более 6 часов просмотра, 160 уроков ) – Получить курс
  • G-таблицы. — если не нравится Excel, воспользуйтесь курсом на Google-таблицах

Как использовать макросы VBA в Excel для сохранения в xlsx, xlsm. Сложности, возможные проблемы, как с ними справиться. Чтение параметров, подбор паролей.

Ъпо воде

Список глав в этой статье:

Что делает метод SaveAs

?

Если вам нужно сохранить файл с помощью VBA. Ответ на классический вопрос Сохранить как

Внимание: При выполнении этого метода файл будет сохранен под указанным именем, и вы начнете работать в этом новом файле!

Спасибо за информацию Петр Ф.

Сохранить как

Синтаксис метода

Синтаксис 1 для листа

Синтаксис 2 для рабочей книги (Workbook)

Описание параметра

  • Имя файла Обязательно — Строка (Рабочий лист), Необязательно — Вариант (Рабочая книга) — если не указан полный путь, он будет сохранен в текущей папке (каталоге)
  • FileFormat Необязательно — Variant — тип сохраняемого файла, см. ниже, где перечислены типы — например, XlFileFormat
  • Пароль Необязательно — Вариант — Пароль (макс. 15 символов)
  • WriteResPassword Необязательно — Вариант — Пароль для записи.
  • ReadOnlyRecommended Необязательно – Вариант — для файла только для чтения
  • CreateBackup Необязательно — Вариант — Если необходимо создать резервную копию = TRUE
  • Режим доступа Необязательно — Вариант
  • Разрешение конфликтов Необязательно — Вариант
  • AddToMru Необязательно — Вариант
  • TextCodePage Необязательно – Вариант – не используется в США. Английский Excel
  • TextVisualLayout Необязательно — Вариант — не используется в США. Английский Excel
  • Локальный Необязательный — Вариантный — ИСТИНА — Excel учитывает национальные настройки в панели управления (центр настроек) — я покажу больше в примерах, где это более наглядно.

Типы файлов — Формат файла

Типы файлов (например, таблица XlFileFormat) вместе с их кодом:

  • 51 xlOpenXMLWorkbook — без макроса xlsx
  • 52 xlOpenXMLWorkbookMacroEnabled — с макросом xlsm
  • 50 xlExcel12 -binary xlsb
  • 56 xlExcel8 — xls (версия 97 – 2003)

Другие важные файлы csv, txt, pdf .

  • -4158 — текст
  • 6 — CSV
  • 36 — прн

И еще один полный список в отдельной статье

Простой пример

Мы начнем с совершенно простого примера

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

Сохраните файл под именем MyFile.xlsm .

Более сложные примеры

Сохранить с паролем

Сохраненные выбранные листы

Сохранить с датой

Текущая дата и время будут вставлены в имя

ActiveWorkbook.SaveAs Filename:=»D:\test\Report» & Формат (теперь «ггггммдд») & «.xlsm»

Сохранить с датой + именем ячейки

Сохранить с датой и выбрать имя, набравзначения в ячейку A1 и в ячейку A2.

FName = Sheets(«Лист1»).Range(«A1»).Text FDocument = Sheets(«Лист1»).Range(«A2»).Text NameDate = FName & Документ & Формат(Теперь «ггггммдд»)

Улучшено редактирование сохраненного файла.

NameDatum = FName & «-» & Документ & «_» &Формат(Теперь «ггггммдд») & «.xlsm», формат файла:=52

Дополнительные коды

Добавить и расширить код VBA.

Определение подходящего формата

Проверьте, содержит ли книга макросы.

If .HasVBProject Then Result = «.xlsm» Else Result = «.xlsx» End If

Диалоговые окна

Отключено отображение системных сообщений.

С приложением .ScreenUpdating = False .EnableEvents = False End With

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

Читайте также:  Как сбросить все службы по умолчанию windows 10

С приложением .ScreenUpdating = True .EnableEvents = True End With

Сохраняется под другими именами — csv, txt, pdf

Как сохранить pod в csv, txt, pdf будет предметом других статей. Как сохранить книгу Excel в *.pdf, я написал в статье Печать в *.pdf — макрос Excel VBA.

Проблемы с сохранением

Проблемы с хранилищем. Вы сохраняете под именем файла, который уже открыт и не может быть записан, папка недоступна, лист содержит макросы, которые нельзя сохранить в *.xlsx, вам нужно сохранить в более старой версии, и у вас форматирование, которое старая версия не поддерживает и т.д.

Команды, аналогичные команде Сохранить как

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

Сохранить копию как

Закрытая книга

Сохранить эту книгу

Сохраните копию книги

Сохраните копию записной книжки с выбранным именем и датой.

FPath = «C:\document» FName =Листы («Лист1»). Диапазон («A1»). Текст FNumber = Листы («Лист1»). Диапазон («A2»). Текст ИмяДата = FName & FNumber & Формат (теперь «дд.мм.гггг») ThisWorkbook.SaveCopyAs Имя файла:=FCesta & «\» & ИмяДата & «.xlsx» Конец Sub

Примечание: это другой метод, поэтому он не должен содержать «FileFormat:=51».

Сохранить как отдельный лист(ы)

Как сохранить только один лист, например Аквивнн.

ActiveSheet.Copy ActiveWorkbook.SaveAs Имя файла:=»C:\MyFolder\MySubFolder\Test.xls» ActiveWorkbook.Close

Совет не спрашивать о сохранении:

Отдельные листы

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

Dim sh As Worksheet For Each sh In Worksheets sh.Copy ‘ at не запрашивает подтверждение сохранения Application.DisplayAlerts = False ‘ имена отдельных рабочих листов в соответствии с именем листов ‘ Совет: у вас может быть условие если имя листа начинается с: xy* ActiveWorkbook .SaveAs Filename:=»D:\smaz\» & sh.Name & «.xlsx» Application.DisplayAlerts = True ‘если я хочу сохранить и эту книгу ActiveWorkbook.Close Savechanges:=False Next

Для скачивания

Файл как сохранить в VBA с помощью SaveAs (SaveCopyAs) для бесплатной загрузки. В файле используются макросы.

При необходимости я буду постепенно добавлять коды VBA.

Всего

Есть комментарии к любой дополнительной статье.

Статья обновлена: 19.09.2020 11:07

Если

Помог ли этот веб-сайт сэкономить вам время и деньги? Помог ли он решить проблему? Готовы ли вы предоставить символическое вознаграждение за дальнейшее развитие? Выберите форму вознаграждения, которая вам подходит.

Павел Ласбк — автор сайта

Microsoft Office (Word, Excel, Google Sheets , PowerPoint) с 2000 г. (с 2004 г. на этомдомен) — В 2017 году я получил престижную награду MVP от Microsoft (пока я единственный от ИР в категории Excel). Я также делюсь своими знаниями и опытом онлайн в видеороликах для SEDUO . В компаниях преподаю и консультирую , работаю в МУНИ. Я создаю этот сайт более 15 лет. Существует более 1000 бесплатных инструкций, советов и рекомендаций, включая более 250 различных шаблонов и рабочих книг.

Комментарии

РоманП

Добавлено: 25.09.12 16:27

Здравствуйте, я экселиста-самоучка, но я сделал форму для заказов, где название формы всегда состоит из данных в форме (год, месяц, день и название заказа). Это имя находится в одной заданной ячейке. Можно ли сделать макрос, когда заполненная форма сохраняется в новой книге с этим именем после нажатия кнопки печати (выход)? Спасибо за совет.

Павел Ласбак

Добавлено: 25.09.12 18:24

To RomanP: используйте Workbook.SaveAs, где имя файла будет именем данной ячейки (например, A1). Sub SaveAsName() Dim FName As String Dim FPath As String FPath = «C:\attempts» FName = Sheets(«Sheet1»).Range(«A1»).Text ThisWorkbook.SaveAs Filename:=FPath & «\» & FName End Sub

Джон В.

Добавлено: 27.01.13 07:18

Здравствуйте, я хотел бы получить совет, как сохранить копию листа с помощью команды, которая указана в разделе «Сохранить с датой», чтобы в имени не было слова «Отчет», а была ссылка на конкретную ячейку в листе. 1. Например, из Sheet1 & A1 и усилитель; B3 и усилитель; дата

Павел Ласбак

Добавлено: 27.01.13 07:43

To HonzaV: В статье выше сказано, что повторение — мать мудрости 😉 использовать функцию NYNН() в VBA нужно СЕЙЧАС вводить на английском языке FCesta = «D:\pokusy» FName = Sheets(» Sheet1″).Range(«A1»).TextNameDatum = FName & Формат(Теперь «ггггммдд») ThisWorkbook.SaveAs Имя файла:=FCesta & «\» & ИмяДата &».xlsm», формат файла:=52 формат файла:=52 . сохранить файл как xlsm (т.е. файл с макросами). Только за доп. Или используя СЕГОДНЯ() NameDate = FName & Format$(Date, «mm-dd-yyyy») PS: Не проверяет, существует ли папка, существует ли уже файл с таким именем, не открыт ли он и т.д.

Джон В.

Добавлено: 27.01.13 10:52

Большое спасибо за вашу помощь. Я понял эту часть, но я не знаю, как добавить второе значение из второй ячейки к именованию. Для уточнения: мне нужно сохранить заполненный счет, где я хотел бы сохранить дату, номер документа и имя. Дата будет написана с помощью вашего макроса, будет написан номер счета. A1, но я не знаю, как добавить второе значение из ячейки A2.

Читайте также:  Windows 10 как не устанавливать некоторые обновления

Павел Ласбак

Добавлено: 27.01.13 11:59

Кому Honza V: добавление окончено & см. образец FName = Sheets(«Лист1»).Range(«A1»).Text FDocument = Sheets(«Лист1»).Range(«A2»).Text NameDate = FName & Документ & Формат (теперь «ггггммдд»), при необходимости добавьте к имени дополнительные символы, например, запятые NameDatum = FName & «-» & Документ & «_» &Формат(Теперь «ггггммдд») & «.xlsm», формат файла:=52

Джон В.

Добавлено: 27.01.13 17:27

Спасибо, все понял и все работает как надо. У меня есть еще одна проблема. Лист с накладной, который я сохраняю в папке накладных, перезаписывает имя всей тетради, а когда мне нужно сохранить всю тетрадь, она автоматически сохраняется в последней накладной (могу добавить путь и оригинальное имя вручную). Мне нужно, чтобы вся книга была сохранена в исходной папке, потому что у меня есть другие данные в других листах, которые я добавляю постепенно, и мне нужно, чтобы они были сохранены. Запиши это. о коносаменте и т.д.

Павел Ласбак

Добавлено: 27.01.13 18:41

В Honza V: Сохранить как копию (см. информацию выше) отличаетсяметод SaveCopyAs Синтаксис: SaveCopyAs(Filename), поэтому он сохраняется, например: ThisWorkbook.SaveCopyAs Filename:=FCesta & «\» & ИмяДата & «.xlsm» не должен быть FileFormat:=52

Джон В.

Добавлено: 27.01.13 19:18

Sub save() FPath = «C:\Documents and Settings\Placha\s» FName = Sheets(«Лист1»).Range(«A1»).Text FNumber = Sheets(«Лист1″).Range(» A2″).TextNameDatum = FName & FNumber & Формат (теперь «дд.мм.гггг») ThisWorkbook.SaveCopyAs Имя файла:=FCesta & «\» & ИмяДата & «.xlsx», FileFormat:=51 End Sub Это весь макрос, но при запуске первая строка помечается желтым цветом с помощью Sub save() и FileFormat помечается. Сообщение о переходе: ошибка компиляции: именованный аргумент не найден

Павел Ласбак

Добавлено: 27.01.13 21:23

Для Honza: «FileFormat:=51» не должно быть, см. предыдущий комментарий. Где синтаксис + пример и примечание, что так быть не должно 😉 Sub save() FPath = «C:\Documents and Settings\Plocha\s» FName = Sheets(«Лист1»).Range(«A1» ).Text FNumber = Sheets(«Лист1»).Range(«A2»).Text NameDate = FName & FNumber & Формат (теперь «дд.мм.гггг») ThisWorkbook.SaveCopyAs Имя файла:=FCesta & «\» & ИмяДата & «.xlsx» Конец Sub

Джон В.

Добавлено: 27.01.13 21:41

Спасибо, все работает на 100%. Я не понял примечание о FileFormat. Я подумал, что не стоит писать там 52, но я могу использовать другое обозначение. Я уже знаю, что нет никакого формата. Я действительно просто пользователь. Еще раз спасибо за вашу помощь.

Питер Г

Добавлено: 22.02.13 05:53

Здравствуйте, мистер Ласак. Не могли бы вы прикрепить файл в качестве образца? Я продолжаю бороться с этим, и я не могу этого сделать. Решаю первую задачу (см. RomanP) с сохранением имени файла по содержимому ячейки. Большое спасибо.

Павел Ласбак

Добавлено: 23.02.13 09:22

ЭтоПетр Г: Ну, файл прилагается. Добавил образец в статью. Речь идет только о сохранении (используя SaveAs и SaveCopyAs) с паролем, без пароля, фиксированным именем, именем из ячейки, именем, дополненным временем.

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

Питер .Ф.

Добавлено: 25.02.13 13:41

Что касается темы, я просто хочу сказать, что если вы выполняете метод «SaveAS», вы автоматически работаете с новым файлом! Он отличается от «SaveCopyAs», где можно определить «Формат файла» (например, html, pdf. ). Лучше всего видеть это шаг за шагом в отладке. Если вы продолжите писать на VBA, вы уже находитесь в другом файле! Из статьи это не совсем понятно. В противном случае, это очень ценный WEB для меня. Спасибо, Павел.

Павел Ласбак

Добавлено: 25.02.13 20:30

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

Павел Хурт

Добавлено: 21.03.13 16:00

Здравствуйте, г-н Ласак, как я могу написать сценарий, чтобы пользователь выбирал папку для сохранения копии, а не предопределял ее. Я хотел бы использовать SaveCopyAs, где будет определен формат PDF. А имя файла будет состоять из имени (для таблицы) и даты (тоже из таблицы). Большое спасибо за полезные страницы, я как самоучка очень это ценю.

Пол

Добавлено: 21.03.13 16:15

И еще один момент, как мне установить saveAs — saveAs только для определенного листа, а не для всей книги? Спасибо, спасибо

Павел Хурт

Добавлено: 22.03.13 10:01

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

Павел Ласбак

Добавлено: 22.03.13 20:23

Павелу Хёрту: Я отредактировал образец файла. Работает после тестовсоздание *.pdf без проблем.
Для более подробной информации об экспорте в *.pdf я написал статью об экспорте в *.pdf

Читайте также:  Как построить графики c windows forms

Джейкоб

Добавлено: 29.03.13 18:21

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

Житка

Добавлено: 17.10.13 11:38

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

Дэвид

Добавлено: 11.11.13 11:37

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

Ростислав

Добавлено: 10.02.14 14:50

Здравствуйте, я хотел бы сохранить в формате pdf в Excel 2010, это работает для меня, но у меня есть 3 документа на странице на одном листе, и мне нужно будет сохранить только один документ за раз, а тот, который я хочу. Что-то вроде области печати при печати. Его можно выбрать при сохранении в формате . я думаю

Томаш

Добавлено: 15.04.14 07:11

Здравствуйте, хотелось бы совета по макросу. У меня есть файл «контролла.xls», где в ячейке «Е2» у меня серийный номер, например: «001». Мне нужно составить макрос, который сохранит данную книгу в четко указанной папке (например: C:\KONTROLA\) как копию, которая будет иметь имя «E2″&DDMMYY. У меня все это получается, но после сохранения я в основном в сохраненном excel. Мне нужно, чтобы он сохранялся в фоновом режиме, но оригинальный excel «kontrolla.xls» все еще оставался открытым. Мне также нужно, чтобы данное значение в ячейке «E2» увеличивалось при каждом сохранении.один. Кнопка сохранения должна работать только в том случае, если ячейка «G8» имеет «хорошее» значение. Я самоучка excel, мне очень весело, но как-то я не знаю, как это сделать. p.s. У меня Excel 2003. Заранее спасибо за ваше время. ТВ

Добавлено: 01.08.15 11:11

Здравствуйте, мне бы хотелось посоветовать, как сделать файл CSV из Excel? это невозможно сделать в правильном формате для экспорта в интернет-магазин. Спасибо за совет и помощь. Спасибо, Петр Брно

Добавлено: 01.09.15 08:32

Является ли Петр: — использования «Сохранить как» недостаточно? + в окне «Тип файла» выберите: «CSV(MS-DOS)(*csv)»

Восхождение

Добавлено: 03.06.15 07:17

Привет, это не совсем относится к методу «Сохранить как», но речь идет о сохранении файла «Сохранить как». И поскольку это может быть кому-то полезно, почему бы не попробовать 🙂 В рабочей книге (которая «как» шаблон мечты без данных) Я редактирую/обновляю таблицы, другие пользователи добавляют данные. Итак, xlt или проверенное свойство файла «Только для чтения» снова для меня неприятность (обновления довольно частые), но я использовал «Private Sub Workbook_Open()», где пользователи, у которых есть файл, могут быть определенная запись и другие имеют один и тот же файл только для чтения.Но это все равно сохранит любую возможную копию для других пользователей как доступную только для чтения, поэтому я подумал: решать, когда/кому файл открывать для чтения и когда/кому создавать это для записи в Module1: [code]Sub Auto_Open() Dim strUser As String strUser = Environ(«USERNAME») Select Case strUser ‘Full Access Case Is = «user login with full access» If ActiveWorkbook.ReadOnly Then _ ActiveWorkbook.ChangeFileAccess Mode:=xlReadWrite, WritePassword: =»admin» ‘Случай ограничения доступа <> «вход пользователя с полным доступом» Если не ActiveWorkbook.ReadOnly Then _ ActiveWorkbook.ChangeFileAccess Mode:=xlReadOnly,WritePassword:=»admin» End Select End Sub[/code] и для этого создайте Module2, который в случае открытого файла «только для чтения» (т.е. любого, кроме меня) предложит «сохранить как» и при этом time снимите ограничения с Module1 в этой сохраненной копии и пролистайте друг за другом (это удалит оба модуля в созданной копии) [code]Sub Auto_Close() Dim strUser As String strUser = Environ(«USERNAME») Select Case strUser Case Is < ;> «Вход пользователя с полным доступом» Если strUser = Environ («ИМЯ ПОЛЬЗОВАТЕЛЯ»), то затемнить vbCom как набор объектов vbCom = Application.VBE.ActiveVBProject.VBComponents vbCom.Remove VBComponent:=vbCom.Item («Module1») vbCom.Remove VBComponent: =vbCom.Item(«Module2») End If End Select End Sub[/code] Что ж, я немного попотел с Module2. Условие должно было быть, если это я, ничего не делать, иначе удаляйте модули. Это, наконец, прижилось, но это немного нелогично (для моего мозга). в любом случае я не профессионал, конечно можно и лучше. Так что относитесь к этому с недоверием.

Восхождение

Добавлено: 03.06.15 09:48

[код], так что теперь я понятия не имею, почему это не сработало в предыдущем посте «код» — прошу прощения. [/код]

Поделиться с друзьями
ОС советы