Как применить макрос ко всем файлам в папке
Иногда необходимо проделать однотипные операции с несколькими файлами, расположенными в одной папке. Можно открывать каждый по очереди:
Workbooks.Open "C:\Новая папка\Книга1.xlsx"
Workbooks.Open "C:\Новая папка\Книга2.xlsx"
и т.д.
Но если файлов много и все с разными именами, то это не очень практично и уж точно не компактно. А т.к. немногие начинающие могут сразу найти желаемое, я решил выложить код, который перебирает все файлы в папке и открывает их:
sFiles = Dir(sFolder & "*.xls*") - Строка отвечает за тип перебираемых файлов. В примере будут просмотрены любые файлы Excel. Звездочка на конце означает любой символ или набор символов. Т.е. если указать без неё - "*.xls", то будут просмотрены только файлы с расширением xls, а если указать xlsx - то файлы с расширением xlsx и никакие другие.
Если хотите перебрать файлы других форматов, а не Excel, то просто замените "*.xls" на нужное расширение. Например "*.doc". Также, если хотите собрать только файлы с определенными символами/словами в имени, то можно указать так: sFiles = Dir(sFolder & "*отчет*.xls*") . Будут просмотрены все файлы, содержащие в имени слово "отчет"(например "отчет за июнь.xls", "отчет за июль.xls", "сводный отчет.xls" и т.п.).
Но есть и еще одна проблема: что если необходимо открыть файлы не только в указанной папке, но и во всех её подпапках? Указанные выше код не подойдет в данной ситуации. В версиях Excel 2003 и младше это решалось с помощью метода .FileSearch, но в старших версиях данный метод по каким-то причинам был заблокирован разработчиками Microsoft. И осталось действовать только через рекурсивный метод перебора папок. Ниже приведен код, который открывает все файлы Excel в указанной папке, включая все подпапки:
If Replace(objFile.Name, objFSO.GetBaseName(objFile), "") Like ".xls*" Then
Строка отвечает за тип перебираемых файлов. В примере будут просмотрены любые файлы Excel. Звездочка на конце означает любой символ или набор символов. Т.е. если указать без неё - "*.xls", то будут просмотрены только файлы с расширением xls, а если указать xlsx - то файлы с расширением xlsx и никакие другие.
Если добавить условие: If objFSO.GetBaseName(objFile) Like "*книга*" Then
то будут обработаны файлы, которые в имени содержать слово "книга". При этом регистр букв имеет значение. Т.е. если файл содержит в имени слово "Книга", то он не будет обработан.
Думаю теперь Вы легко сможете проделать необходимые операции с множеством файлов.
В примере я закомментировал строки, открывающие файл и вносящие изменения в ячейку А1 и заменил это созданием массива имен всех файлов в папках и подпапках. По окончании имена всех файлов заносятся в столбец "А". Сделано для того, чтобы Вы случайно не повредили информацию в файлах.
В последнее время участились вопросы как просмотреть еще и все диски. Поэтому решил выложить код, который просматривает все подключенные диски и выводит список всех файлов в них. Для работы кода достаточно разместить его в одном модуле с кодом выше:
Как применить функцию к нескольким сигналам сразу?
Имеется 100 записей сигналов. Необходимо применить функцию центрирования ко всем сигналам. Можно ли.
Работа с одной формой нескольким документам
Здравствуйте форумчане! такой интересный вопрос может кто подскажет где посмотреть или как этот.
Как применить функцию к нескольким элементам
Добрый день! Подскажите как оптимизировать код. Есть несколько списков html <p.
Для программного способа надо определиться, как вы собираетесь перебирать эти файлы: показать пользователю диалог с выбором файлов или это просто папка, в которой надо обработать все имеющиеся файлы
А затем, имея массив файлов, можно строку
Set rDoc = ActiveDocument.Range
заменить на цикл, где вместо ActiveDocument будет использоваться элемент массива - документ Я иммею ввиду, что бы упростить процесс. Допустим документов не 30, а 1000. Не буду же я в каждый заходить и прожимать макрос. Как мне изменить код, подскажите пожалуйста.
Решение
Добавлено через 1 минутуСам диалог не помню где нашёл. Давно использовал для своего проекта
Как к нескольким картинкам в ImageList применить одну и ту же процедуру?
на форме 81 штук image, и 1 ImageList с 40 картинками внутри. надо что б эта процедура.
[CodeMirror] Как можно применить библиотеку к нескольким <textarea>?
Как можно применить библиотеку CodeMirror к нескольким <textarea>? Например, есть несколько.
Как подключить js-скрипт сразу к нескольким файлам?
Здравствуйте. Вот есть допустим папка а в ней файлы page1, page2. page57 Должен ведь быть.
Как в запросе на объединение применить WHERE сразу ко всем объединяемым таблицам?
Здравствуйте! В БД есть "Запрос" (на объединение), в котором желаемый результат. Если записей.
Как применить определённое действие ко всем свойствам в .cs файле сразу?
Как применить определённое действие ко всем свойствам в .cs файле сразу? Вот, допустим я хочу.
В этой статье я представляю макрос для открытия всех книг из определенной папки.
Список всех имен файлов одной конкретной папки с помощью Kutools for Excel
Откройте все книги в папке с VBA
1. Нажмите Alt + F11 ключи для открытия Microsoft Visual Basic для приложений окно.
2. Нажмите Вставить > Модульи вставьте в скрипт приведенный ниже код.
VBA: открыть все файлы Excel в папке
3. Нажмите F5 , появится диалоговое окно для выбора папки, в которой вы хотите открыть все книги в ней. Смотрите скриншот:
4. Нажмите OK, и все книги в конкретной папке были открыты.
Список всех имен файлов одной конкретной папки с помощью Kutools for Excel
За исключением открытия файлов в папке, пробовали ли вы когда-нибудь перечислить все имена файлов в одной конкретной папке? С участием Kutools for ExcelАвтора Список имен файлов Утилита, вы можете быстро перечислить все типы или один определенный тип файлов в одной папке.
После бесплатная установка Kutools for Excel, сделайте следующее:
1. Нажмите Kutools Plus > Импорт Экспорт > Список имен файлов. Смотрите скриншот:
2. в Список имен файлов В диалоговом окне выберите папку, из которой вы хотите вывести список файлов, укажите тип файла, который вы хотите перечислить, а затем укажите единицы измерения размера файла, которые вам нужны. Если хотите, вы можете создать гиперссылки на имена файлов, которые будут перечислены. Смотрите скриншот:
3. Нажмите Ok, и все файлы в определенной папке были перечислены на новом листе активной книги. Смотрите скриншот:
Обработка нескольких файлов с помощью функции пакетной обработки экономит время. Пакетная обработка может быть использована для выполнения типичных задач или конкретных действий. К примеру, вы можете:
• Добавлять или удалять метаданные, включая сведения о местоположении и прочие данные EXIF
Диалоговое окно Пакетная обработка состоит из трех страниц: Добавить фотографии , Пакетные действия , Настройки вывода . Пакетные действия не являются обязательными, а Настройки вывода желательно проверить перед началом обработки изображений.
2 В диалоговом окне Пакетная обработка на странице Добавить фотографии щелкните Добавить и выберите нужные файлы.
4 На странице Пакетные действия выберите любые из следующих действий:
• Добавить информацию — Для получения информации об отображении подписей и данных EXIF на фотографиях см. раздел Отображение подписей и инфо-текста на изображениях.
• Водяной знак — Для получения информации о добавлении водяных знаков см. раздел Добавление видимых водяных знаков.
• Изменить размер — Для получения информации об изменении размера см. раздел Изменение размера изображений.
• Скрипт — Позволяет установить флажки для одного или нескольких макросов. Активируйте Автоматический режим , чтобы избежать отображения диалоговых окон, связанных с макросами (это прерывает процесс пакетной обработки и нуждается в действиях со стороны пользователя). Дополнительные сведения см. в разделе Работа с инструментами и функциями макросов.
• Рамка изображения — Для получения информации о рамках изображения см. раздел Добавление рамок к изображениям.
6 На странице Настройки вывода настройте любые из следующих параметров:
• Папка места назначения — Установите флажок Новый и перейдите в новую папку. Установите флажок Оригинал для сохранения в исходную папку.
• Имя файла — Чтобы переименовать файлы, установите флажок Переименовать , щелкните Изменить , выберите опцию в списке Параметры переименования и нажмите Добавить . Можно переименовать файл, изменив текущую дату, имя документа, положение файла в процессе переименования, текущее время и специальный текст.
• Конфликты имен — Активируйте подходящую опцию если файлы имеют одинаковые имена.
• Функции безопасности — Установите флажок Удалить информацию EXIF , чтобы удалить все метаданные EXIF из обработанных файлов. Установите флажок Удалить информацию о местоположении , чтобы удалить GPS-координаты. Установите флажок Добавить водяной знак , чтобы добавить водный знак Digimarc.
7 Нажмите Старт , чтобы запустить пакетную обработку.
На странице Пакетные действия щелкните Сохранить пакет , перейдите в папку, где будет хранится файл пакета и введите имя файла.
Использование ранее сохраненных пакетных настроек (файл .pba)
На странице Пакетные действия нажмите Загрузить пакет и перейдите в папку с файлом пакетных настроек.
1 Выберите Файл Пакетная обработка , чтобы открыть диалоговое окно «Пакетная обработка».
Если требуется выбрать смежные файлы, удерживайте нажатой клавишу Shift при выборе. Чтобы выбрать несмежные файлы, удерживайте нажатой клавишу Ctrl при выборе.
Выбранные файлы отобразятся в списке Файлы для обработки диалогового окна «Пакетная обработка».
4 В окне группы «Режим сохранения» выберите один из следующих параметров.
• Создать тип : этот параметр выбирается чаще всего, и для него требуется только установить новый тип вывода в поле Тип окна группы «Параметры сохранения». Можно также указать, чтобы макрос запускался с этим параметром. При выборе этого параметра файл считывается, для него запускается макрос (если он задан), затем файл сохраняется в новое местоположение и/или с новым именем и преобразуется в новый формат.
• Копировать : при выборе этого параметра требуется, чтобы в окне группы «Макрос» был определен макрос. При выборе этого параметра файл считывается, для него запускается макрос, затем файл сохраняется в новое местоположение и/или с новым именем. Когда этот параметр выбран, поле Тип и кнопка Параметры в окне группы «Параметры сохранения» становятся недоступными.
• Перезаписать : при выборе этого параметра требуется, чтобы в окне группы «Макрос» был определен макрос. При выборе этого параметра файл считывается, для него запускается макрос, затем файл сохраняется в исходное местоположение (исходный файл перезаписывается). Когда этот параметр выбран, все настройки в окне группы «Параметры сохранения» становятся недоступными.
Примечание: Не все форматы файлов имеют связанные с ними параметры. Если параметры для выбранного формата файла отсутствуют, то кнопка Параметры будет недоступной.
6 Выберите параметры в окнах групп Формат и Кодирование .
На панели текущего шага отображаются все имена файлов и состояние преобразования. Индикатор выполнения показывает ход выполнения преобразования.
Если не указана другая папка для вывода, программа Corel PaintShop Pro сохраняет преобразованные файлы в ту же папку, где находятся исходные файлы.
Запуск макроса во время преобразования формата файла
Установите флажок Использовать макрос в окне группы «Макрос» и выберите макрос в раскрывающемся списке.
1 Выберите Файл Пакетная обработка , чтобы открыть диалоговое окно «Пакетная обработка».
• Чтобы выбрать смежные файлы, щелкайте их, удерживая нажатой клавишу Shift .
• Чтобы выбрать несмежные файлы, щелкайте их, удерживая нажатой клавишу Ctrl .
Файлы отобразятся в списке Файлы для обработки диалогового окна «Пакетная обработка».
6 В окне группы Режим сохранения выберите один из следующих параметров.
• Создать тип : запуск макроса и сохранение обработанного файла как файла другого типа. Нажав кнопку Обзор , файлы вывода можно сохранить в другую папку.
• Перезаписать : запуск макроса и сохранение файла в исходную папку с перезаписью исходного файла.
• Сохранить макрос : запуск макроса без сохранения файла. Этот параметр следует использовать, если сохранение файла выполняется макросом.
Если выбрать параметр Копировать , то можно переименовать преобразованные файлы, нажав кнопку Изменить , выбрав параметр в списке Параметры переименования и затем нажав Добавить . Можно переименовать файл, изменив текущую дату или время, имя документа, положение файла в процессе переименования или специальный текст.
Если выбрать параметр Перезаписать , то можно снять флажок Остановить при ошибке , чтобы избежать необходимости подтверждения перезаписи для каждого файла.
7 Установите флажок Использовать макрос в окне группы «Макрос».
Откроется диалоговое окно «Ход выполнения пакета», и начнется пакетное преобразование. На панели текущего шага отображаются все имена файлов и состояние преобразования. Индикатор выполнения показывает ход выполнения преобразования.
Остановка макроса при Corel PaintShop Pro возникновении ошибки программы
Установите флажок Запуск макроса в режиме «Автоматический» .
Читайте также: