Страницы: 1
RSS
VBA Сбор данных из разных файлов на один лист, Копирование информации из нескольких файлов на один лист
 
Всем доброго времени суток. Пришлось собирать данные из нескольких файлов в один, на один лист, последовательно, сверху вниз, сохраняя структуру и формулы. Когда количество файлов перевалило за сотню, озадачился автоматизацией процесса. Сам в VBA не силен, поэтому искал что-то подходящее в тырнете. Многократно предлагаемый вариант сбора листов не подходит, надо собирать на один лист. Наткнулся на задачу похожую на мою, и даже написано что работает, но у меня не завелось. Нашел здесь https://forumvba.ru/index.php?topic=1285.0

При запуске выводится сообщение об ошибке "... User-defined type not defined", и выделяется строка:
Код
Dim fso As Scripting.FileSystemObject
Подскажите пожалуйста, что не так, либо другое решение моей задачи. Копируемый диапазон в разных файлах по количеству строк разный, но шапка одна и та же, везде данные начинаются с одной и той же строки. Количество столбцов одинаковое.
 
Код
Dim FSO As Object
Set FSO = CreateObject("Scripting.FileSystemObject")
 
Или как было задумано автором - подключить компонент, см. http://prntscr.com/puqx3j
 
Kuzmich,спасибо за помощь, но к сожалению не очень помогло, пришлось так же переопределять остальные переменные аналогично FSO, и все равно выдало ошибку "Variable not defined" и подсветило  Hidden в строке
Код
If (файл.Attributes And Hidden) = 0 Then
На этом я остановился.

Hugo, спасибо, помогло, заработало. Понадобилось еще внести кое-какие поправки связанные с наименованием листа и диапазона. Буду доводить до нужного мне функционала. Как понимаю, этот компонент надо включать на компьютере, где предполагается запускать этот код? Это никак нельзя решить иначе? Не уверен, что моим сотрудницам это под силу, им по 10 раз надо объяснять как запустить макрос.  :cry:  
 
Этот компонент есть на 99% компьютеров (с Windows!), так что если будете передавать работающий файл (а не только голый код), то всё заработает.
Изменено: Hugo - 10.11.2019 11:23:03
 
Hugo,понятно, спасибо еще раз.
Страницы: 1
Наверх