Как распечатать все книги в папке

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

Как макрос работает

В этом макросе, мы используем функцию 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

Как работает этот код

  1. Объявляем переменную MyFiles (тип строчный), которая будет фиксировать имя каждого файла.
  2. В шаге 2, макрос использует функцию DIR, чтобы указать Тип файла и адрес папки. Обратите внимание, что код ищет файлы в формате xlsx. Это означает, что только .xlsx файлы будут передаваться. Если вы ищете .xls файлы, вам необходимо изменить расширение.
  3. Открываем файл и распечатываем один экземпляр Лист1. Можете внести изменения в названия листа, который необходимо напечатать. Также можете изменить количество копий.
  4. Ищем снова по кругу, чтобы найти больше файлов. Если нет файлов, переменная MyFiles пустая.
    Если это так, то цикл и макрос завершается.

Как использовать

Для реализации этого макроса, вы можете скопировать и вставить его в стандартный модуль:

  1. Активируйте редактор Visual Basic, нажав ALT + F11.
  2. Щелкните правой кнопкой мыши имя проекта / рабочей книги в окне проекта.
  3. Выберите Insert➜Module.
  4. Введите или вставьте код во вновь созданном модуле.
Оцените статью
Добавить комментарий