Всем добрый день! Третий день "ломаю" голову, как реализовать такую штуку (поиск на просторах форума и интернета ни к чему не привел):
1. Имеется несколько файлов с расширениями .xlsx и .xlsb примерно с такими названиями: 1012_20151101.xlsx, 1012_20151030.xlsx, 1015_20151030.xlsb, 1518_20151030.xlsx и т.п. Данные файлы все находятся в одной папке. 2. Реализована форма посредством vba, в которой присутствует textbox для ввода данных.
Задача заключается в следующем:
Необходимо, чтобы макрос выполнял объединение содержимого экселевских файлов с похожими названиями, т.е. введя первые два значения наименования файлов, к примеру "10" в textbox, макрос находил в папке вот эти файлы: 1012_20151101.xlsx, 1012_20151030.xlsx, 1015_20151030.xlsb и производил объединение их содержимого с сохранением результата в новый файл с расширением .csv и присваивая ему название "10", т.е. взятое значение переменной из textbox.
Возможно ли реализовать такой макрос? Основная трудность для меня заключается именно в том, что я не понимаю, как реализовать поиск файлов по описанному условию. Очень надеюсь на вашу помощь!
Заранее спасибо!
Всем добрый день! Третий день "ломаю" голову, как реализовать такую штуку (поиск на просторах форума и интернета ни к чему не привел):
1. Имеется несколько файлов с расширениями .xlsx и .xlsb примерно с такими названиями: 1012_20151101.xlsx, 1012_20151030.xlsx, 1015_20151030.xlsb, 1518_20151030.xlsx и т.п. Данные файлы все находятся в одной папке. 2. Реализована форма посредством vba, в которой присутствует textbox для ввода данных.
Задача заключается в следующем:
Необходимо, чтобы макрос выполнял объединение содержимого экселевских файлов с похожими названиями, т.е. введя первые два значения наименования файлов, к примеру "10" в textbox, макрос находил в папке вот эти файлы: 1012_20151101.xlsx, 1012_20151030.xlsx, 1015_20151030.xlsb и производил объединение их содержимого с сохранением результата в новый файл с расширением .csv и присваивая ему название "10", т.е. взятое значение переменной из textbox.
Возможно ли реализовать такой макрос? Основная трудность для меня заключается именно в том, что я не понимаю, как реализовать поиск файлов по описанному условию. Очень надеюсь на вашу помощь!
Пройтись по файлам в папке, если значение текстбокса входит в название файла то обрабатываем фапйл либо собираем пути к файлам в массив для дальнейшей работы с файлами [vba]
Код
If InStr(имя_файла, Textbox1) > 0 Then 'что-то делаем End If
[/vba]
Пройтись по файлам в папке, если значение текстбокса входит в название файла то обрабатываем фапйл либо собираем пути к файлам в массив для дальнейшей работы с файлами [vba]
Код
If InStr(имя_файла, Textbox1) > 0 Then 'что-то делаем End If
как реализовать поиск файлов по описанному условию
[vba]
Код
Sub ВЫБОР_ФАЙЛОВ_ПО_МАСКЕ() Dim iPath$, iMaska$, iFile$ iPath = "ПУТЬ К ФАЙЛАМ" iMaska = "10*.xls*" iFile = Dir(iPath & iMaska) Do While iFile <> "" MsgBox iFile 'ЗАПИСАТЬ ИМЯ ФАЙЛА НА ЛИСТ ДЛЯ ПОСЛЕДУЮЩЕЙ РАБОТЫ iFile = Dir Loop End Sub
как реализовать поиск файлов по описанному условию
[vba]
Код
Sub ВЫБОР_ФАЙЛОВ_ПО_МАСКЕ() Dim iPath$, iMaska$, iFile$ iPath = "ПУТЬ К ФАЙЛАМ" iMaska = "10*.xls*" iFile = Dir(iPath & iMaska) Do While iFile <> "" MsgBox iFile 'ЗАПИСАТЬ ИМЯ ФАЙЛА НА ЛИСТ ДЛЯ ПОСЛЕДУЮЩЕЙ РАБОТЫ iFile = Dir Loop End Sub
Wasilic, а как реализовать поиск по маске, взятой из textbox?
В коде вы написали:
Цитата
iMaska = "10*.xls*"
Но это "жестко" заданное условие, а мне необходимо, чтобы название (маска) требуемого файла бралась из текстбокса... Как это можно реализовать?
Wasilic, а как реализовать поиск по маске, взятой из textbox?
В коде вы написали:
Цитата
iMaska = "10*.xls*"
Но это "жестко" заданное условие, а мне необходимо, чтобы название (маска) требуемого файла бралась из текстбокса... Как это можно реализовать?bankiroff
Все, с этим разобрался еще раз большое спасибо всем!
Но есть еще один маленький вопросик
Как мне организовать сохранение найденных файлов в один? То есть объединить их содержание и сохранить в единый файл? При условии, что содержание может иметь разную структуру (таблицы). Мне необходимо чтобы макрос объединял все содержимое полностью.
Заранее спасибо!
Все, с этим разобрался еще раз большое спасибо всем!
Но есть еще один маленький вопросик
Как мне организовать сохранение найденных файлов в один? То есть объединить их содержание и сохранить в единый файл? При условии, что содержание может иметь разную структуру (таблицы). Мне необходимо чтобы макрос объединял все содержимое полностью.
что содержание может иметь разную структуру (таблицы).
Этот, поверьте, вопросик, многократно сложнее нежели поиск файлов. Ну а, как организовать, путей много, поочередно подгружаете файлы, определяете структуру таблицы и копируете ее в свой рабочий файл. Так наверное. Мож еще кто чего подскажет.
что содержание может иметь разную структуру (таблицы).
Этот, поверьте, вопросик, многократно сложнее нежели поиск файлов. Ну а, как организовать, путей много, поочередно подгружаете файлы, определяете структуру таблицы и копируете ее в свой рабочий файл. Так наверное. Мож еще кто чего подскажет. Wasilich
Я только сейчач понял, что этот вопрос сложнее, чем предыдущий трудность в том, как полностью совместить два файла? не зависимо от кол-ва таблиц и строк?
Я только сейчач понял, что этот вопрос сложнее, чем предыдущий трудность в том, как полностью совместить два файла? не зависимо от кол-ва таблиц и строк?bankiroff