Sub ProcessFromFolder ()
'Этот макрос раскрывает каждый архив в свою очередь и извлекает данные от его, записывает его в базе данных,
'закрывает архив, и двигает дальше к следующему архиву. Макрос также запишет архив - имя так, что
'он только будет обрабатывать архив если он не был обработан раньше. Он использует «собрание» для
'имена архива.
Тусклое fso как предмет, fld как предмет, fil как предмет
Тусклое coll как новое собрание
Тусклое FileListWs как рабочий лист
Тусклое SourceWs как рабочий лист
Тусклое SourceWb как Workbook
Тусклое DestWs как рабочий лист
Тусклое TotFiles как длиной
Тусклый счетчик как длиной
Тусклое WasOpen как булевско
Затемните I как длиной
Затемните rowe как длиной
Затемните col как длиной
Затемните lastrow как длиной
Затемните errorflag как шнур
Application.ScreenUpdating = ложно
errorflag = ""
'Обусловьте архивы обрабатываемые уже
Установите FileListWs = ThisWorkbook.Worksheets («список архива»)
Установите DestWs = ThisWorkbook.Worksheets («база данных»)
С FileListWs
TotFiles = Application.CountA (. [a: a])
Если TotFiles > 0 после этого
Для счетчика = 1 к TotFiles
coll. Добавьте. Клетки (встречные, 1). Клетки (встречные, 1)
Затем
Закончитесь если
Закончитесь с
'посмотрите скоросшиватель
Установите fso = CreateObject («Scripting.FileSystemObject»)
'положите полный курс к скоросшивателю содержа архивы данных в следующей линии Кодего
Установите fld = fso.GetFolder («C:\Documents and Settings\Patrick & Thuc-Nghi \ мои документы \ архивы Патрик \ Эксел \ CaptG \ ")
Для каждого fil в fld. Архивы
На резюме ошибки затем
coll. Добавьте fil. Имя, fil. Имя
Если заблуждается <> 0 после этого
'уже обрабатываемый архив, не делает ничего
Err.Clear
Еще
'обработано пока; обрабатывайте его
С FileListWs
Если TotFiles = 0 после этого
. [A2] = fil. Имя
Еще
'. Клетки (. Rows.Count, 1).End (xlUp). Смещение (1, 0) = fil. Имя
. Клетки (65536, 1).End (xlUp). Смещение (1, 0) = fil. Имя
Закончитесь если
Закончитесь с
'см. если оно уже открыт
Установите SourceWb = Workbooks (fil. Имя)
Если заблуждается <> 0 после этого
'не был открыт
WasOpen = ложно
Установите SourceWb = Workbooks.Open (fil. Курс)
Еще
WasOpen = True
Закончитесь если
Установите SourceWs = SourceWb.Sheets (1)
С SourceWs
. Ряд (. Клетки (2, «a»). Клетки (. Rows.Count, «a»). Конец (xlUp). Смещение (0, 14)). Скопируйте _
DestWs.Cells (DestWs.Rows.Count, «a»). Конец (xlUp). Смещение (1, 0)
Конец с
errorflag = ""
Если не WasOpen после этого SourceWb.Close ложное
Закончитесь если
Затем
Установите coll = ничего
Установите fil = ничего
Установите fld = ничего
Установите fso = ничего
Application.ScreenUpdating = True
«Сделанное» MsgBox
Подводная лодка конца
|