Как можно применить макрос ко всем выбранным файлам сразу?

Как можно сделать так, чтобы данный макрос применялся к нескольким книгам Excel одним нажатием (например, горячей клавишей), не внося изменения в текст макроса?
  • 19 июля 2024 г. 8:02
Ответы на вопрос 2
Для того чтобы применить макрос ко всем выбранным файлам сразу, можно воспользоваться функцией "Пакетная обработка" (Batch processing) в программе Excel. 

Для этого нужно открыть все нужные файлы Excel, затем записать макрос и сохранить его в одном из файлов. После этого нужно выбрать вкладку "Разработчик" -> "Запись макросов", нажать "Пакетная обработка" и выбрать все открытые файлы, к которым вы хотите применить макрос. Затем выбрать сохраненный макрос и запустить его.

Чтобы сделать так, чтобы макрос применялся к нескольким книгам Excel одним нажатием или горячей клавишей, можно назначить горячую клавишу для запуска макроса. Для этого нужно открыть вкладку "Разработчик" -> "Макросы", выбрать нужный макрос и нажать на кнопку "Параметры". Далее можно задать горячую клавишу для запуска макроса. После этого можно применить макрос к нескольким книгам Excel одним нажатием этой клавиши.
Что-то вроде: 
Sub ProcessFilesInDirectory()
    Dim folderPath As String
    Dim fileName As String
    Dim wb As Workbook
    
    ' Путь к директории
    folderPath = "C:\temp\"
    
    ' Получаем первый файл с расширением .xlsx в директории
    fileName = Dir(folderPath & "*.xlsx")
    
    ' Перебираем все файлы в директории
    Do While fileName <> ""
        ' Открываем файл
        Set wb = Workbooks.Open(folderPath & fileName)
        
        ' Вызываем функцию macros3
        Call macros3()
        
        ' Сохраняем и закрываем файл
        wb.Close SaveChanges:=True
        
        ' Получаем следующий файл
        fileName = Dir
    Loop
End Sub
Похожие вопросы