Как сохранить и закрыть все открытые файлы книги excel

Свойства и методы activeworkbook

Как в одном макросе закрыть все книги Excel?

​ DoCmd.SetWarnings False DoCmd.RunSQL​​ при .DisplayAlerts =​KSV​​ End SubКстати, а​ в кнопке? Не​ формы, а сами​ сохранения и закрытия​ на закрытие после​​ подать команду о​​ нового действия.​ в Макросе1, не​Код:​lLineNum = lLineNum​ лист.​: Так как макрос​ Исправила на (oBook.Save).​ Dim app As​ «DELETE Свод_реестров.* FROM​ True)​​: все правильно​ какие элементы есть​ руби сук, на​ сохраняете активную книгу​​ userform.​​ Книги1, теперь не​ закрытии двух книг,​Не всё пока​​ зависимо от порядка​Sub Макрос1() On​ + 1​При этом почему​ расположен в какой-либо​​Штурмaн​ Object Dim oBook​ Свод_реестров» DoCmd.TransferSpreadsheet acImport,​Application.Quit​200?’200px’:»+(this.scrollHeight+5)+’px’);»>’ подавляет предупреждения Excel​ на форме?​ котором сидишь! Напиши​​ ) или нам​Спасибо!​ закроются из-за того,​ то закрываются обе​ получается.​ расположения книг в​ Error Resume Next​.InsertLines lLineNum, «call​ то само открывается​ книге, то выполнив​: Помогите чайнику.Надо закрыть​ As Object Set​ , «Свод_реестров», FullFilePath,​85Muslim85​

​Workbooks.Application.DisplayAlerts = False​​Код может и​ в коде кнопки​ надо было догадаться​Pavel55​ что код уже​ книги!​1. Если перейти​

​ Макросе1. Очевидно в​​ Workbooks(«Книга1»).Close (SaveChanges) Workbooks(«Книга2»).Close​​ Izm(Target)»​​ окно редактора VBA.​​ команду​ через VBA Excel​ app = CreateObject(«Excel.Application»)​ True, «Свод_реестров» CurrentDb.Execute​​: все отлично)) спасибки. ​​’ сохраняет книгу​ не сработать, если,​ me.hide — это​ ?)​: А что значит​ не выполняется.​Таким образом в​ с Книги3 в​ Макросе1 необходимо определить​​ (SaveChanges) On Error​End With​​ По типу Alt+F11.​Application.Quit получаем запрос​ ,без сохранения и​ Set oBook =​ «DROP TABLE «​ вот чего я​​ в файл С​ например, фокус на​ переведет тебя в​СердЖиГ​ сохранить? У формы​Код будет срабатывать​ 3-ем сценарии код​ Книгу1, после чего​​ управляющую книгу, т.​ GoTo 0 End​VBProj.VBE.MainWindow.Visible = False​Подскажите как кодом​ на сохранение​ без​ app.workbooks.Open(FullFilePath) app.Run «diap»​ DoCmd.SetWarnings True MsgBox​ хотел)​ ДРУГИМ именем​ TextBox(e).Только ListBox​​ команду в вызывающей​: Павел, сорри, уже​ нет такой функции​ всегда, если его​ почемуто не видит​ подать команду о​ е. книгу с​ SubМакрос1 находится в​End Sub​ его закрыть.​А если предварительно​​выскакивания запросов на​ oBook.Close False app.Quit​ «Импорт успешно завешен»​Workbooks.Application.DisplayAlerts = False​

​Excel.ActiveWorkbook.SaveAs («rl.xlsm»)​​К этой процедуре​ процедуре после show​​ вечер был :-)​А закрыть можно​ запускать с книги​ Книги2.​ закрытии Книги1, то​ которой поступила команда,​ Книге3. Проэкт состоит​ОлеггелО​Glen​ закрыть книгу без​ сохранеие​ Set app =​ End SubРаньше все​Excel.ActiveWorkbook.Save​’ сохраняет книгу​ надо обратиться с​ — сделай там,​Димит​ так​ в которой он​Mishel915​ закрывается!​ и закрыть её​ из трёх книг​:​: Вроде так помогает​ сохранения​palva​ Nothing DoCmd.SetWarnings False​​ работало хорошо за​Application.Quit​ в файл С​ фактическим параметром KeyAscii​ что требуется, а​​: Не получается закрыть​Sub Макрос1()​ размещён.​: Установил причину не​2. Если перейти​ последней.​ — Книга1, Книга2,​Glen​Set VBProj =​Application.ActiveWorkbook.Close 0 то​

​: Закрыть одну из​​ DoCmd.RunSQL «DELETE Свод_реестров.*​​ исключением следующего: когда​Mary_Rustle​ ТЕМ ЖЕ именем​ — как это​ затем выгружай форму!​ форму при нажатии​’или так​Если код запускать​ срабатывания кода​

Закрыть книгу после сохранения

Как вы видели, в методе CLOSE есть аргумент для указания пути. Допустим, вы хотите сохранить «Book6» в папку на рабочем столе. Вот код, который вам нужно использовать.

Этот код сохранит книгу «Book6» в папку, сохраненную на моем рабочем столе, с именем «myFIle.xlsx». Но есть одна вещь, о которой вам нужно позаботиться: ЕСЛИ у вас уже есть книга с таким именем, она заменит этот файл новым.

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

Дж.А. Гомес

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

Для этих целей в первых нескольких разделах этого руководства я познакомлю вас с некоторыми конструкциями VBA, которые помогут вам создавать макросы, закрывающие книги. Я в основном сосредоточен на методе Workbook.Close. Однако я также представляю метод Workbooks.Close, который позволяет быстро закрыть все открытые книги. В конце первого раздела я расскажу о закрытии книг Excel без подсказок и расскажу о некоторых наиболее распространенных способах достижения этой цели.

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

Это руководство по закрытию рабочей книги Excel VBA сопровождается рабочей книгой Excel, содержащей макросы, которые я использую в приведенных ниже примерах. Вы можете получить немедленный бесплатный доступ к этому примеру книги, подписавшись на информационный бюллетень Power Spreadsheets.

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

Оглавление

Давайте начнем с рассмотрения…

Закрыть все открытые книги Excel

Эти макросы помогут вам закрыть все открытые файлы Excel, оставив лишь текущий файл.

Выбирайте любой из них — они мало чем отличаются.

Первый оставляет открытой только активную книгу, независимо от того, из какого файла запущен этот макрос:

Второй макрос оставляет открытой только ту книгу, из которой запущен этот самый макрос, независимо от того, какая книга активна на момент запуска:

Третья версия макроса отличается от первой лишь тем, что все файлы закрываются с сохранением изменений: (первый макрос в этом случае выдаёт диалоговое окно — сохранять файл, или нет)

Ну и четвертый вариант — тоже закрывает все открытые файлы, только изменения в этих файлах не сохраняются:

27505 просмотров

Закрыть окно редактора VBA макросом (Макросы/Sub)

​ открытых и не​​Workbooks.Application.DisplayAlerts = False​​ ‘Была нажата ESC,​ реагировать.​Pavel55​СердЖиГ​​ так как код​ в Книгу2, потом​ wb.Name ThisWorkbook.Name​Такой вопрос :​​ (Книга1 и Книга2)​ VBComp.CodeModule​

​: Доброго дня.​​ с листа Excel,​​Mary_Rustle​ образом:​​ End With app.Run​

​ сохраненных книг,​​Excel.ActiveWorkbook.SaveAs («rl.xlsm»)​​ прячем форму’ UserForm1.Hide​flower2005​: )) ну, всё​

​: Уважаемые форумчане!​​ запущен с Книги1.​ перейти в Книгу1,​

​ Then wb.Close Next​​ какой должен быть​ закрываются в одном​

​With CodeMod​​В работе макрос​ ​ а из среды​​:​Private Sub Кнопка0_Click()​​ «diap» app.Quit Set​’ иначе будет​​Workbooks.Close​ Else ‘ничего не​​: Кто тебя учил​​ правильно) только вы​Напомните, плиззз, команды​​ Все книги, которые​ потом перейти в​​ End SubКнига3 должна​ код для закрытия​​ макросе, например так​​lLineNum = .CreateEventProc(«Change»,​​ переносит модуль процедуры​

​ разработки не работает.​​Казанский​​ FullFilePath = «C:папка7​​ app = Nothing​ запрашивать подтверждения сохранения,​End Sub​ делаем End If​ ​ выгружать (unload) форму​ спрашивали о сохранении​ в VBA для​​ стоят в очереди​ Книгу2, после чего​ оставаться для выбора​ ​ всех книг, записанных​ :​

​ «Worksheet»)​​ события на новый​​oldpasp​​, спасибо) Действительно глупость.​​ свод реестров 2015_9.xlsm»​

Метод Workbook.Close

Метод Workbook.Close можно использовать для закрытия соответствующего объекта рабочей книги.

Основной синтаксис Workbook.Close следующий:

Для целей приведенного выше заявления применимы следующие определения:

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

Давайте начнем с более подробного рассмотрения трех параметров (SaveChanges, Filename и RouteWorkbook) выше. После рассмотрения этих аргументов я добавлю несколько дополнительных комментариев о методе Workbook.Close.

Параметры сохранения изменений

Вы используете параметр SaveChanges, чтобы указать, сохраняет ли Visual Basic для приложений изменения в книге (или нет), когда книга:

  1. Есть несохраненные изменения.

Оба этих условия должны быть выполнены, чтобы VBA учитывал SaveChanges. Другими словами, VBA игнорирует SaveChanges в следующих ситуациях:

  • Если в книге нет несохраненных изменений.

SaveChanges — необязательный аргумент. Обычно при работе с ним используются следующие значения:

  • Верно: закройте книгу и сохраните изменения.

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

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

Этот способ действий предлагается такими авторитетами, как автор Ричард Мэнсфилд (в Mastering VBA for Microsoft Office 2016). Некоторые из преимуществ использования метода SaveAs (по сравнению с параметром Filename) для этих целей заключаются в следующем:

  1. Гарантирует, что книга всегда сохраняется под указанным вами именем файла.

Параметр RouteWorkbook

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

RouteWorkbook является необязательным.

Основные правила, которые Visual Basic для приложений использует для определения того, как работать с RouteWorkbook, следующие:

  1. Если нет необходимости отправлять книгу следующему получателю, VBA игнорирует RouteWorkbook.

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

  1. True: VBA направляет книгу следующему получателю.

Метод Workbook.Close и макросы Auto_Close

Макросы Auto_Close не выполняются, когда вы закрываете книгу из VBA

Это важно, если ваша рабочая книга использует макросы Auto_Close (вместо события BeforeClose) для автоматического запуска макроса перед закрытием рабочей книги. Метод Workbook.Close инициирует событие BeforeClose

Метод Workbook.Close и надстройки

Обычно вы устанавливаете и удаляете надстройки через диалоговое окно надстроек.

Вы также можете открывать и закрывать надстройки. Другими словами, теоретически вы можете применить метод Workbook.Close к надстройке.

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

Причина этого объясняется экспертами в области Excel Диком Куслейкой и Майком Александром в Power Programming with VBA в Excel 2016 следующим образом:

Поэтому, как правило, используйте свойство AddIn.Installed для установки и удаления надстроек.

Начало работы с книгой VBA

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

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

Этот пример может показаться немного запутанным для новичка, но на самом деле он довольно прост.

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

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

Взгляните на часть книги

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

 Устранение неполадок в коллекции книг

Когда вы используете коллекцию Workbooks для доступа к книге, вы можете получить сообщение об ошибке:

Run-time Error 9: Subscript out of Range.

Это означает, что VBA не может найти книгу, которую вы
передали в качестве параметра.

Это может произойти по следующим причинам:

  1. Рабочая книга в настоящее время закрыта.
  2. Вы написали имя неправильно.
  3. Вы создали новую рабочую книгу (например, «Книга1») и попытались получить к ней доступ, используя Workbooks («Книга1.xlsx»). Это имя не Книга1.xlsx, пока оно не будет сохранено в первый раз.
  4. (Только для Excel 2007/2010) Если вы используете два экземпляра Excel, то Workbooks () относится только к рабочим книгам, открытым в текущем экземпляре Excel.
  5. Вы передали число в качестве индекса, и оно больше, чем количество открытых книг, например Вы использовали Workbooks (3), и только две рабочие книги открыты.

Если вы не можете устранить ошибку, воспользуйтесь любой из функций в разделе Они будут печатать имена всех открытых рабочих книг в «Immediate Window » (Ctrl + G).

Примеры использования рабочей книги VBA

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

Примечание. Чтобы попробовать этот пример, создайте две открытые книги с именами Тест1.xlsx и Тест2.xlsx.

Примечание: в примерах кода я часто использую Debug.Print. Эта функция печатает значения в Immediate Window. Для просмотра этого окна выберите View-> Immediate Window из меню (сочетание клавиш Ctrl + G)

Парольная защита в Microsoft Excel

Microsoft Excel дает несколько вариантов блокировки: это стойкая защита от несанкционированного доступа («Пароль на Открытие») и слабенькая защита от случайных конфигураций (вся остальная парольная защита).

  1. Защита от несанкционированного доступа (стойкая блокировка):
  2. Защита от случайных конфигураций (слабенькая блокировка):
    • Пароль записи конфигураций
    • Пароль защиты листа Excel
    • Пароль защиты структуры книжки
    • Пароль защиты VBA макросов

При установке «Пароля на Открытие», все данные в Excel файле шифруются и разблокировать файл без пароля нереально. Его подбор (по другому поиск, восстановление) просит времени и специальной программки для разблокировки Excel пароля. Время поиска зависит от формата Excel и трудности самого пароля.

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

Парольная защита в Excel – вправду классная и нужная штука. Но бывает так, что она становится не нужна. Тогда пароли мешают, раздражают, теряются.

Не неувязка! Давайте разблокируем наш Excel файл и удалим пароли.

Дополнительные сведения

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

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

Запустите 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

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

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

Application. Дисплайалертс = false

Application. Дисплайалертс = true

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

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

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

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

ДоЧерний элемент Auto_Close ()

Если ThisWorkbook. Save = false, то

ThisWorkbook. Save End, если

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

клиент прислал мне Excel .xlsx документы, и каждый раз, когда я открываю один из них, а затем закрываю его, Excel спрашивает, хочу ли я Сохранить изменения, даже если я их не делал. Это не происходит ни с одним из моих других файлов Excel. Что здесь происходит?

в файлах нет макросов. Я использую Excel 2007.

Макрос закрытия книги без сохранения

​ что при событии​​ к строковым переменным​​ActiveWorkbook.Close True​ так:​ кликом сохранялся файл​Workbooks.Close​​ не работает (​vadim​ Set_windows.Hide End Subпри​ результат???​Но ведь в​

​ Клозе, ну сделал​​ oWorkbook As Excel.Workbook​ CreateObject(“Excel.Application”) ‘создать объект​ regional settings, а​​ vbHide Else: MsgBox​Разместите этот код​ открытия файла из​Вы пытаетесь прицепить​​End If​​Sub TestClose()​ и закрывался Excel?​

​End Sub​​Юрий М​

​: ActiveWindow.Close​​ закрытии все настройки​

​oExcel.Worksheets(“Лист1”).Range(“a1”).Font.Size = 14​​ Ворде в том​ так​ Dim Количество_найденного_текста As​ Microsoft Excelзатем делаю​

​ вот как бы​​ “Excel не может​ в модуле книги,​ некоторой папки, переписываются​

​ значение типа Integer,​​End Sub​Application.Run “ВосстановитьИнтерфейс”​Юрий М​KSV​

​: Вы, если спрашиваете,​​При закрытии книги​​ сохраняются, при открытии​​Busine2009​

​ скрипте который я​так как не​

​ Long Set oExcel​​ что хочу​ программно?​ закрыться, наверное вы​ (обычно с названием​ модули в VBA​ возвращаемое функцией​openid.mail.ru/mail/vlad3622340​Application.Quit​: Не это ищете:​: все правильно​​ то хоть читайте​ появляется окно “Сохранить​​ снова этой формы​​:​

​ представил не ругается,​​ знаю как правильно,​​ = CreateObject(“Excel.Application”) ‘создать​………………..​​Ципихович Эндрю​​ не сказали пожалуйста”,​​ ЭтаКнига)​ в открытый файл.​InStr(sName, ”&”)Андрей​: Спасибо, Юрий, ещё​ActiveWorkbook.Close True​

​ Workbooks(имя).Close true Или​​200?’200px’:”+(this.scrollHeight+5)+’px’);”>’ подавляет предупреждения Excel​ ответы. Ведь ясно​ изменения в файле?”​ с следующий раз-​Ципихович Эндрю​ выполнается и есть​ приходится угадывать​ объект Microsoft Excel​

​хочу закрыть без​​: Вроде изучил этот​​ 16: Cancel =​

​Option Explicit Private​​ Модули предназначены для​

planetaexcel.ru>

Командная кнопка

Что такое кнопка макроса

Кнопка макроса — это кнопка, созданная из кода макроса или путем записи макроса в Microsoft Excel. Когда код макроса создан (или макрос записан), он может быть назначен кнопке. После назначения кнопке процесс макроса можно повторить, щелкнув кнопку, которой он назначен.

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

Добавить вкладку разработчика

Убедитесь, что вкладка разработчика отображается на ленте Excel для этого руководства. Если вам нужно добавить вкладку разработчика на ленту, щелкните здесь чтобы узнать как. На снимке экрана ниже показано расположение вкладки разработчика по умолчанию.

Вставка кнопки

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

Отследить кнопку

Обведите квадрат или прямоугольник того размера, которого вы хотите, чтобы кнопка была рядом с курсором на листе Excel. Появится новое окно с названием «Назначить макрос». Если хотите, переименуйте макрос, затем нажмите «Создать». Появится новое окно, в которое вы можете вставить код, чтобы сообщить кнопке, что делать при ее нажатии.

Напишите код

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

Sub Button2_Click () Application.Quit ThisWorkbook.SaveКонец подписки

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

Сохраните книгу

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

Проверить кнопку

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

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

Дизайн кнопок

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

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

Дополнительный ресурс

Для получения дополнительной помощи о том, как создать кнопку сохранения и закрытия в Microsoft Excel, посмотрите видео ниже.

Как добавить кнопку макроса, которая сохраняет и закрывает книгу Excel

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

Рекомендации

Краудер, Дж. (3 декабря 2019 г.). Получено 9 января 2020 г. с https://www.youtube.com/watch?v=LzFQpKwAIfM.

Краудер, Дж. (1 января 2020 г.). Как добавить вкладку разработчика в Excel. Получено 1 января 2020 г. с https://www.youtube.com/watch?v=nskuG6pK5ig.

закрытие екселя с сохранением и без предупреждения (Макросы/Sub)

​wertt​​ раз!​End Sub​ активная книга​Workbooks.Application.DisplayAlerts = False​ сказал — В​ Мне сохранять изменения​​ они воспроизводятся ))​,​ результат​ ​Workbook.Close savechanges =​​ oExcel.Workbooks.Open («L:\Г.xls») oExcel.Visible​​ вопросов, пишу так:​​ вопрос​​ 1 End If​​ Sub Workbook_BeforeClose(Cancel As​

​ того что-бы не​​: Все равно ошибка​ ​Вроде разобрался.​​А в модуле​​openid.mail.ru/mail/vlad3622340​’ сохраняет книгу​ МОДУЛЬ КНИГИ. В​​ не надо. Какой​​ такого быть не​в 5 строке​согласно её текста,​​ False ‘424 ошибка​​ = True ‘задаём​​oExcel.Workbooks.Close(SaveChanges = True)​​’параметр SaveChanges типа​ End Sub​ Boolean) Const i​ можна было распечатать​ выскакивает на строчке​​wertt​​ книги удалить весь​: Нет, не это.​ в файл С​ ответ: «Вставил отдельным​ надо написать макрос​​ должно?))​​ помести в переменную​ что за подвох??​ oExcel.Close savechanges =​ размер шрифта для​ ‘ошибка аргумент не​ Boolean, если установить​​Night Ranger​ = «Excel закройся​ документ и сохранять.Что-то​ActiveDocument.Close SaveChanges:=wdDoNotSaveChanges.​​: Нужно закрыть документ​

​ код.​​Открыта всего одна​ ДРУГИМ именем​ модулем. » Тогда или​​ чтобы это окно​​Ципихович Эндрю​​ oWorkBook открываемый документ.​

14 ответов

Originally posted by ziv

хм. а как ты его обрабатываешь? ты же когда к нему обращаешься как-то его обзываешь? ну..тогда после обработки открой его. и потом то же самое только activeworkbook это первое что в голову приходит. только как же ты с ним работаешь? или введи переменную для определения имени файла и вместо книга1 напиши его имя.

м-даа программу писал под фиксированное имя открываемого файла

а как открываемому файлу присвоить необходимое мне имя, например «Книга1»?

а как открываемому файлу присвоить необходимое мне имя, например «Книга1»?

хм. А как открывается книга? Можно сделать через диалоговое окно , чтобы юзер сам выбрал что открыть: Application.Dialogs(xlDialogOpen).Show bookName = ActiveWorkbook.Name

а вообще проще в аську стукнись если срочно.

хм. А как открывается книга? Можно сделать через диалоговое окно , чтобы юзер сам выбрал что открыть: Application.Dialogs(xlDialogOpen).Show bookName = ActiveWorkbook.Name

а вообще проще в аську стукнись если срочно.

я делал вот так: name = Application.GetOpenFilename

а по аське ты «Марина»?

Вот этот name уже содержит в себе полной путь к файлу — «C:aaa1.xls», если из этой строки выдернуть aaa1.xls(например через мою функцию FileWithoutDir, описание в конце), то его можно использовать при обращении к книге — Workbooks(«aaa1.xls»).Close

А можно и так, вариантов масса:

Dim sWrb as String

name = Application.GetOpenFilename Workbooks.Open name sWrb = ActiveWorkbook.name . Workbooks(sWrb).Close

Dim wWrb As Workbook

name = Application.GetOpenFilename Workbooks.Open name Set wWrb = ActiveWorkbook . wWrb.Close

Public Function FileWithoutDir(path As String) As String ‘ Вырезает название файла из полного пути к файлу Dim i%, pos%

On Error GoTo Err_

FileWithoutDir = «» s = «» If path «» Then

pos = InStr(1, path, «») s = path If pos > 0 Then Do s = Right(s, Len(s) — pos) pos = InStr(1, s, «») Loop Until pos = 0 End If FileWithoutDir = s

ExitSub: Exit Function

Err_: MsgBox «Возникла ошибка! (в функ. FileWithoutDir)» Resume ExitSub

Вот этот name уже содержит в себе полной путь к файлу — «C:aaa1.xls», если из этой строки выдернуть aaa1.xls(например через мою функцию FileWithoutDir, описание в конце), то его можно использовать при обращении к книге — Workbooks(«aaa1.xls»).Close

А можно и так, вариантов масса:

Dim sWrb as String

name = Application.GetOpenFilename Workbooks.Open name sWrb = ActiveWorkbook.name . Workbooks(sWrb).Close

Dim wWrb As Workbook

name = Application.GetOpenFilename Workbooks.Open name Set wWrb = ActiveWorkbook . wWrb.Close

Public Function FileWithoutDir(path As String) As String ‘ Вырезает название файла из полного пути к файлу Dim i%, pos%

On Error GoTo Err_

FileWithoutDir = «» s = «» If path «» Then

pos = InStr(1, path, «») s = path If pos > 0 Then Do s = Right(s, Len(s) — pos) pos = InStr(1, s, «») Loop Until pos = 0 End If FileWithoutDir = s

ExitSub: Exit Function

Err_: MsgBox «Возникла ошибка! (в функ. FileWithoutDir)» Resume ExitSub

В твоем случае наверное лучше использоватть вместо InStr() функцию InStrRev(), чтобы сразу найти правый «» в полном имени файла.

Да, согласен, грехи молодости.

А я вот так действую в таких случаях:

Книги в Экселе нумеруются в порядке открытия. Поэтому сразу после открытия того файла Workbooks(Workbooks.Count) показывает на него. Можно запомнить в объектную переменную, а если никаких других книг не открывается в процессе обработки — так и запоминать ничего не нужно.

Originally posted by Cutty Sark А я вот так действую в таких случаях:

Книги в Экселе нумеруются в порядке открытия. Поэтому сразу после открытия того файла Workbooks(Workbooks.Count) показывает на него. Можно запомнить в объектную переменную, а если никаких других книг не открывается в процессе обработки — так и запоминать ничего не нужно.

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

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

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

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

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

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