Страницы: 1
RSS
обработка нескольких файлов в exel
 
Подскажите, пожалуйста, каким приемом можно редактировать большое количество файлов в exel? Например, нужно во всех файлах. xlsx, лежащих в одной папке проставить значение ячейки а1= 10 и закрасить в желтый цвет.
 
Перебрать циклом все файлы в папке и выполнить для каждого нужные операции. Вопрос перебора файлов обсуждался неоднократно. Один из вариантов можно найти в разделе "Приемы"
 
Я там так и не нашел нужного примера, только вот этот http://www.planetaexcel.ru/techniques/12/45/ но это немного не то, т.к. все действия происходят в уже открытом документе. А как это сделать чтобы файлы xlsx. открывались, с ними происходили действия в цикле и они закрывались?
 
Цитата
pablo пишет: ... А как это сделать...
Скорей всего  - написать макрос, самому, или найти готовый, или заказать... ;)
"Ctrl+S" - достойное завершение ваших гениальных мыслей!.. ;)
 
Z, т.е. шаблонов работы с несколькими файлами xls не существует?
 
Шаблонов - нет, макросы делали. В поиск - пакетная обработка файлов... ;)
"Ctrl+S" - достойное завершение ваших гениальных мыслей!.. ;)
 
Вы чуть-чуть промазали со ссылкой: см. на одну выше )) Вот это Только вместо копирования листа - Ваши действия. Но сам процесс перебора файлов должен Вам подойти.
 
Вот есть пример обработки файлов в цикле:
http://excelvba.ru/code/CombineFiles

Надо совсем немного поменять:

1) вместо
Код
  ' ==== переносим данные в наш файл (shb - кодовое имя листа, куда помещаем данные)
           shb.Range("a" & shb.Rows.Count).End(xlUp).Offset(1).Resize(, ra.Rows.Count).Value = _
            Application.WorksheetFunction.Transpose(ra.Value)
            ' ==== конец обработки данных из очередного файла

написать
Код
sh.Range("a1")=10
sh.Range("a1").interior.color = vbyellow



2) заменить
Код
 WB.Close False: DoEvents    ' закрываем обработанный файл без сохранения изменений

на
Код
 WB.Close TRUE: DoEvents    ' закрываем обработанный файл c сохранением изменений



3) заменить
Код
  ' открываем очередной файл в режиме «только чтение»
       Set WB = Nothing: Set WB = Workbooks.Open(Filename, False, True)

на
Код
  ' открываем очередной файл
       Set WB = Nothing: Set WB = Workbooks.Open(Filename)
 
Практически готовое решение: Просмотреть все файлы в папке
Остается только заменить вписываемое в ячейку значение и добавить именение заливки.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Страницы: 1
Наверх