Итог: Изучите несколько трюков и советов, чтобы сохранить и закрыть все открытые книги Excel.
Уровень мастерства: Начинающий
Если вы используете Excel весь день каждый день, как я, то у вас, наверняка, открыто много рабочих книг одновременно. Я стараюсь дисциплинировать себя, но иногда это трудно. И в конце дня мы просто хотим закрыть все открытые рабочие тетради и пойти домой! Итак, этот пост содержит несколько советов по быстрому закрытию всех открытых файлов, чтобы помочь сократить трафик в час пик.
Совет № 1: Shift + кнопка закрытия окна
Самый быстрый способ закрыть все открытые книги — это удерживать клавишу Shift, нажимая кнопку «Закрыть окно». Кнопка «Закрыть окно» — это «х» в правом верхнем углу окна приложения
Если все открытые книги были сохранены, все они будут закрыты.
Если какая-либо из открытых книг НЕ была сохранена, вам будет предложено сохранить файл. Появится всплывающее окно, и вам придется нажимать Сохранить или Не сохранять для каждой несохраненной книги.
Окно также содержит кнопку Сохранить все. Вы можете нажать эту кнопку, чтобы сохранить все несохраненные книги за один шаг.
Нажатие на кнопку «Отмена» отменит всю операцию, а все еще открытые книги останутся открытыми.
Но что, если мы не хотим сохранить все или некоторые из открытых рабочих книг? Мы вернемся к этому в совет № 3.
Совет № 2: добавьте кнопку «Закрыть все» на панель быстрого доступа
Мы также можем добавить кнопку «Закрыть все» на панель быстрого доступа (QAT), чтобы закрыть все открытые книги. Это делает то же самое, что и сочетание клавиш Shift + Close Window.
Преимущество здесь в том, что мы можем использовать сочетание клавиш для нажатия кнопки. Доступ к кнопкам QAT можно получить с помощью сочетания клавиш, нажав клавишу Alt и номер, назначенный кнопке.
Чтобы добавить кнопку «Закрыть все» в QAT, откройте окно параметров Excel («Файл»> «Параметры») и следуйте инструкциям на изображении ниже.
После нажатия кнопки «Закрыть все» нам будет предложено то же окно, как описано в совете № 1.
Бонусный совет: мы также можем использовать сочетание клавиш Ctrl + W, чтобы закрыть одну книгу. Я упомянул этот совет в своем посте по 17 ярлыкам Excel на 2017 год.
Совет № 3: Закройте все открытые книги с помощью макроса
В этом разделе я поделюсь несколькими макросами, которые можно использовать для закрытия всех открытых рабочих книг. Макросы дают нам большую гибкость, когда мы хотим контролировать, какие книги сохраняются перед закрытием.
Макрос для закрытия всех книг без сохранения
Если мы не хотим сохранять какие-либо открытые файлы, мы можем использовать следующий макрос.
Sub Close_All_Files_No_Save()
' Закройте все открытые книги и не сохраняйте
Dim wb As Workbook
' Просмотрите каждую рабочую книгу
For Each wb In Application.Workbooks
' Предотвратить рабочую книгу, которая содержит
' код от закрытия
If wb.Name <> ThisWorkbook.Name Then
' Закройте книгу и не сохраняйте изменения
wb.Close SaveChanges:=False
End If
Next wb
End Sub
Как работает этот макрос?
Приведенный выше макрос просматривает все открытые книги на компьютере с помощью цикла For Next Loop. Он использует оператор If, чтобы проверить, является ли файл в цикле (wb.Name) НЕ (<>) файлом, который содержит код ThisWorkbook.Name.
Затем он использует метод Workbooks.Close (страница справки MSDN), чтобы закрыть книгу. Метод Close имеет необязательный параметр для SaveChanges. Мы можем установить значение True, чтобы сохранить изменения, и False, чтобы закрыть без сохранения.
Примечание. Этот макрос следует запускать только в том случае, если вы уверены, что не хотите сохранять изменения ни в одном из открытых файлов. Его нельзя отменить. Возможно, вы также захотите добавить окно сообщения Да / Нет, чтобы предупредить пользователя перед запуском этого макроса.
Макрос для сохранения всех, кроме новых несохраненных книг (блокнот)
В конце рабочего дня у меня обычно есть несколько книг, которые я хочу сохранить, и некоторые, которые я НЕ хочу сохранять. Я часто открываю новые рабочие книги, чтобы использовать файлы Excel для быстрых вычислений. Я называю их «блокноты». Я не хочу сохранять их, но хочу сохранить все другие открытые файлы.
Файлы — блокноты никогда не сохранялись, поэтому они еще не имеют расширения. Они называются: Book1, Book2, Book2 и т.д. Обратите внимание, что на снимке экрана отсутствует расширение файла (.xlsx, .xlsm).
Таким образом, мы можем добавить оператор If в наш макрос, чтобы увидеть, существует ли расширение файла. Если расширение файла существует, то мы сохраним файл. Если нет, то мы закроем без сохранения.
Sub Save_and_Close_All_Files_Except_ScratchPads()
' Закройте все открытые книги, кроме новых несохраненных файлов
Dim wb As Workbook
' Просмотрите каждую рабочую книгу
For Each wb In Application.Workbooks
' Предотвратить рабочую книгу, которая содержит
' код от закрытия
If wb.Name <> ThisWorkbook.Name Then
' Проверьте, имеет ли имя файла расширение
If InStr(Right(wb.Name, 5), ".xls") > 0 Then
wb.Close SaveChanges:=True
Else
' Не сохраняйте изменения, если это блокнот.
wb.Close SaveChanges:=False
End If
End If
Next wb
End Sub
Как работает этот макрос?
Этот макрос похож на макрос для закрытия всех книг. Разница в том, что мы используем оператор If, чтобы проверить, имеет ли файл расширение.
Функция Right используется для возврата 5 символов в конце имени файла. Если wb — это существующий файл, который уже был сохранен, то Right (wb.Name, 5) вернет «.xlsx» или «.xlsm».
Функция Instr (страница справки MSDN) используется для поиска строки в строке. Возвращает начальный номер строки. Таким образом, если Instr находит «.xls» в пределах «.xlsx» или «.xlsm», он возвращает 1. В противном случае он возвращает 0.
Оператор If проверяет, является ли возвращаемое значение из Instr больше 0, и сохраняет изменения при закрытии книги. В противном случае изменения не сохраняются для книг, которые НЕ содержат расширения.
Макрос для сохранения и закрытия всех книг и автоматического именования файлов
Иногда нам можем быть нужно сохранить некоторые из этих новых файлов (блокноты), но у нас нет времени, чтобы просмотреть каждый файл и сохранить его с именем.
Следующий макрос сохранит и закроет ВСЕ файлы и автоматически назовет новые файлы, которые не были сохранены. Он помещает все новые файлы (блокнот) в указанную вами папку.
Затем вы можете вернуться в эту папку, когда у вас будет свободное время для перемещения и переименования файлов.
Sub Save_and_Close_All_Files()
' Закройте все открытые книги, кроме новых несохраненных файлов
Dim wb As Workbook
Dim sPath As String
' Путь, где будут сохранены новые несохраненные файлы.
' Измените это на папку на вашем компьютере. Конец с обратной косой чертой \
sPath = "C:\Users\username\Documents\Excel Campus\Scratch Pads\"
' Просмотрите каждую рабочую книгу
For Each wb In Application.Workbooks
' Предотвратить рабочую книгу, которая содержит
' код от закрытия
If wb.Name <> ThisWorkbook.Name Then
' Проверьте, имеет ли имя файла расширение
If InStr(Right(wb.Name, 5), ".xls") > 0 Then
wb.Close SaveChanges:=True
Else
' Сохранить блокноты в папке
wb.Close SaveChanges:=True, _
Filename:=sPath & wb.Name & Format(Now, " yyyy-mm-dd-hhmm")
End If
End If
Next wb
End Sub
Как работает этот макрос?
Этот макрос работает аналогично двум другим выше. Единственное отличие состоит в том, что он сохраняет новые файлы (блокноты) в папку на вашем компьютере.
Чтобы использовать этот макрос, вам нужно изменить переменную sPath на папку на вашем компьютере. Обязательно заканчивайте строку пути к файлу обратной косой чертой.
У метода Workbooks.Close есть еще один необязательный параметр (Filename), который позволяет нам указать имя файла, в котором мы хотим сохранить файл, если файл еще не был сохранен.
Если мы не используем параметр «Имя файла», Excel предложит нам меню «Сохранить как» для каждого файла. Таким образом, указание имени файла обходит это окно и может сэкономить нам много времени.
Значение параметра Filename объединяет строку для полного пути к файлу. Он также изменяет текущую дату и время до конца имени файла, используя функции «Формат» и «Сейчас». Функция Format в VBA аналогична функции TEXT в Excel и позволяет нам указать числовой формат. Функция «Сейчас» возвращает текущую дату и время на компьютере пользователя.
Я рекомендую добавить эти макросы в вашу личную книгу макросов, чтобы вы могли использовать их в любое время. Чтобы узнать больше, ознакомьтесь с моей статьей и видео о личной книге макросов.
У вас есть свои советы по сохранению и закрытию файлов?
Я надеюсь, что эти советы и макросы помогут вам закончить день немного быстрее. Есть ли у вас какие-либо другие советы по закрытию файлов? Пожалуйста, оставьте комментарий ниже с любыми предложениями или вопросами. Спасибо!