Что делает макрос: Если необходимо распечатать все книги в папке, вы можете использовать этот макрос.
Как макрос работает
В этом макросе, мы используем функцию Dir. Функция Dir возвращает строку, которая представляет собой имя файла. С её помощью в указанной папке мы возьмём имя каждого файла (с расширением “.xlsx”), затем будем открывать каждый файл, выводить на печать и закрывать файл после сохранения.
Код макроса
Sub PechatVsehKnig()
'Шаг 1: Объявляем переменные
Dim MyFiles As String
'Шаг 2: Указываем нужную папку
MyFiles = Dir("C:\Temp\*.xlsx")
Do While MyFiles <> ""
'Шаг 3: Открываем файлы один за другим
Workbooks.Open "C:\Temp\" & MyFiles
ActiveWorkbook.Sheets("Лист1").PrintOut Copies:=1
ActiveWorkbook.Close SaveChanges:=False
'Шаг 4: Следующий файл в папке
MyFiles = Dir
Loop
End Sub
Как работает этот код
- Объявляем переменную MyFiles (тип строчный), которая будет фиксировать имя каждого файла.
- В шаге 2, макрос использует функцию DIR, чтобы указать Тип файла и адрес папки. Обратите внимание, что код ищет файлы в формате xlsx. Это означает, что только .xlsx файлы будут передаваться. Если вы ищете .xls файлы, вам необходимо изменить расширение.
- Открываем файл и распечатываем один экземпляр Лист1. Можете внести изменения в названия листа, который необходимо напечатать. Также можете изменить количество копий.
- Ищем снова по кругу, чтобы найти больше файлов. Если нет файлов, переменная MyFiles пустая.
Если это так, то цикл и макрос завершается.
Как использовать
Для реализации этого макроса, вы можете скопировать и вставить его в стандартный модуль:
- Активируйте редактор Visual Basic, нажав ALT + F11.
- Щелкните правой кнопкой мыши имя проекта / рабочей книги в окне проекта.
- Выберите Insert➜Module.
- Введите или вставьте код во вновь созданном модуле.