Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.10.2013, 14:02   #1
Alexsandrr
Пользователь
 
Регистрация: 02.10.2013
Сообщений: 78
По умолчанию Макрос_Открытие всех книг Excel в папке

Поискав на форуме ничего не нашел похожего, вынужден обратиться повторно за помощью в создании данного макроса.
В папке "Общие папки" находятся 3 книги Excel (причем их количество может меняться), какой макрос позволяет открывать все Excel книги по очереди в данной папке и проводить с каждой книгой преобразования внутри (к примеру удаление столбцов "A:B").
Пример:
В папке "Общие папки" находится 3 книги Excel, каждую книгу нужно:
Книга1
1. открыть книгу
2. удалить столбцы "A:B"
3. закрыть книгу сохранив
Книга2.....
Книга3.....

Меня интересует цикл открытия книг в папке без привязки к названию книги и выполнение каких либо одинаковых преобразований с каждой книгой.
Спасибо.
Alexsandrr вне форума Ответить с цитированием
Старый 15.10.2013, 14:33   #2
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Пример такого макроса:
http://excelvba.ru/code/CombineFiles

Надо только заменить строки
Код:
Set sh = WB.Worksheets(1)    ' будем брать данные с первого листа
           ' берем диапазон ячеек с ячейки B1 до последней заполненной в столбце B
           Set ra = sh.Range(sh.Range("b1"), sh.Range("b" & sh.Rows.Count).End(xlUp))

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

            WB.Close False: DoEvents    ' закрываем обработанный файл без сохранения изменений
           pi.Log vbTab & "Файл успешно обработан."

            ' перемещаем обработанный файл из папки InvoiceFolder$ в папку ArchieveFolder$
           Name Filename As ArchieveFolder$ & Dir(Filename, vbNormal)
на

Код:
Set sh = WB.Worksheets(1)    ' будем работать с первым листом
           ' удаляем первые 2 столбца
           sh.range("a:b").entirecolumn.delete

            WB.Close TRUE: DoEvents    ' закрываем обработанный файл с сохранением изменений
           pi.Log vbTab & "Файл успешно обработан."
EducatedFool вне форума Ответить с цитированием
Старый 15.10.2013, 16:32   #3
Alexsandrr
Пользователь
 
Регистрация: 02.10.2013
Сообщений: 78
По умолчанию

Спасибо большое за помощь!
Alexsandrr вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Макрос_Открытие книг Excel по очереди без привязки к названию книги Alexsandrr Помощь студентам 9 16.10.2013 09:18
Макрос_Открытие книг Excel по очереди при условии отсутствия какой-либо книги Alexsandrr Помощь студентам 8 14.10.2013 17:00
Сохранение всех открытых книг Decor Microsoft Office Excel 6 22.02.2013 21:53
Количество книг в папке Palomnik1096 Microsoft Office Excel 13 12.04.2011 14:58
Открытие всех файлов xls в папке Milo4ka_Lucy Microsoft Office Excel 17 28.09.2010 14:50