Как запустить макрос одновременно в нескольких книгах?
Работа с несколькими файлами Рабочая книга Excel часто требует повторения одной и той же операции или задачи автоматизации во многих файлах. Открытие каждой книги по отдельности для запуска макроса не только занимает много времени, но и повышает риск ошибок, особенно при обработке больших партий файлов. Автоматизация этого процесса необходима для повышения продуктивности и точности.
С помощью VBA (Visual Basic for Applications) вы можете оптимизировать рабочий процесс, автоматически запуская макрос для каждой книги в указанной папке — это экономит время и гарантирует единообразие результатов. В этом руководстве подробно описано, как настроить и применить решение на основе VBA, чтобы выполнять нужный макрос сразу для нескольких файлов без ручного открытия каждого из них.
Типичные сценарии, в которых этот подход оказывается полезным:
- Применение форматирования или расчётов к коллекции ежемесячных отчётов
- Стандартизация шагов очистки данных для набора экспортированных файлов
- Пакетное обновление шаблонов или добавление структур в устаревшие файлы
Запуск одного и того же макроса в нескольких книгах с помощью кода VBA
Чтобы эффективно запускать один и тот же макрос в нескольких книгах без их ручного открытия, используйте скрипт VBA для пакетной обработки: он предложит выбрать папку и автоматически выполнит макрос в каждом файле книги внутри неё — идеальное решение для большинства типовых задач автоматизации.
Перед началом:
- Все целевые книги закрыты — скрипт откроет и обработает их по мере необходимости.
- Макрос, который вы хотите запустить, не должен требовать взаимодействия с пользователем — например, вывода сообщений или запросов ввода, — поскольку пакетная обработка будет прервана диалоговыми окнами.
- Вы сохранили свою работу, поскольку пакетную обработку макросов нельзя легко отменить, и при некорректном кодировании она может перезаписать данные.
Выполните следующие шаги, чтобы применить макрос ко многим книгам:
1. Удерживая клавиши «ALT + F11», откройте окно Microsoft Visual Basic for Applications.
2. В открывшемся редакторе VBA выберите «Вставка» > «Модуль», чтобы создать новый модуль, и вставьте предоставленный макрос в пустое окно модуля.
Код VBA: одновременный запуск одного и того же макроса в нескольких книгах:
Sub LoopThroughFiles()
Dim xFd As FileDialog
Dim xFdItem As Variant
Dim xFileName As String
Set xFd = Application.FileDialog(msoFileDialogFolderPicker)
If xFd.Show = -1 Then
xFdItem = xFd.SelectedItems(1) & Application.PathSeparator
xFileName = Dir(xFdItem & "*.xls*")
Do While xFileName <> ""
With Workbooks.Open(xFdItem & xFileName)
'your code here
End With
xFileName = Dir
Loop
End If
End Sub
Важные замечания и советы:
- В приведённом выше коде найдите строку
With Workbooks.Open(xFdItem & xFileName). Скопируйте и вставьте нужный вам код макроса (без строк)SubиEnd Sub) между этой строкой и строкойEnd With. Так операция будет выполнена в каждой открываемой книге. - Внимательно проверьте логику макроса и используемые пути, чтобы гарантировать корректную пакетную обработку. Если макрос вносит изменения в данные, рекомендуется сначала протестировать его на небольшом наборе файлов.
См. снимок экрана с указанием места, куда следует вставить код вашего макроса:

3. Нажмите клавишу «F5» в редакторе VBA, чтобы запустить скрипт — появится диалоговое окно для выбора папки.
4. В окне «Обзор» выберите папку, содержащую все книги для обработки. Скрипт последовательно пройдёт по каждому файлу Excel в указанной папке и выполнит ваш макрос.

5. Нажмите «ОК», чтобы запустить пакетную обработку. Добавленный вами фрагмент макроса выполнится во всех целевых книгах из выбранной папки. Обработка крупных партий может занять больше времени — всё зависит от сложности макроса и количества файлов.
- Безопасность макросов: Если появится запрос, разрешите макросы или запускайте файл из доверенного расположения.
- Целевые файлы. Тип файла: Шаблон
*.xls*включает файлы с расширениями.xlsx,.xlsmи.xlsb. При необходимости скорректируйте шаблон. - Полное указание объектов внутри блока With:Используйте начальные точки (например,)
.Worksheets("Sheet1")), чтобы действия применялись к открываемой книге.
Лучшие инструменты повышения продуктивности в Office
Раскройте весь потенциал Excel с помощью Kutools для Excel и ощутите эффективность как никогда раньше.Kutools для Excel предлагает более 300 расширенных функций для повышения продуктивности и Экономия времени.Нажмите здесь, чтобы получить нужную Вам функцию…
Office Tab добавляет в Office вкладки и значительно упрощает Вашу работу
- Включите редактирование и чтение во вкладках в Word, Excel, PowerPoint, Publisher, Access, Visio и Project.
- Открывайте и создавайте несколько документов во вкладках одного окна — вместо того чтобы использовать отдельные окна.
- Повышает вашу продуктивность на 50 % и экономит сотни кликов мышью каждый день!
Все надстройки Kutools — один установщик
Kutools for Office — набор надстроек для Excel, Word, Outlook и PowerPoint, а также Office Tab Pro, идеально подходящий командам, работающим с разными приложениями Office.
- Единый комплект— надстройки для Excel, Word, Outlook и PowerPoint + Office Tab Pro
- Один установщик, одна лицензия— настройка занимает считанные минуты (готово для MSI)
- Лучше работать вместе— оптимизированная продуктивность во всех приложениях Office
- 30-дневная полнофункциональная пробная версия— без регистрации и кредитной карты
- Лучшее соотношение цены и качества— экономия по сравнению с покупкой отдельных надстроек