Есть код, который работает при небольшом количестве строк в книгах
Книга СБ собирает последовательно файлы 1,2,3 лежащие в одной папке
Код |
---|
For Each Filename In coll
Set WB = Nothing: Set WB = Workbooks.Open(Filename, False, True)
If WB Is Nothing Then ' не удалось открыть файл
pi.Log vbTab & "ОШИБКА при загрузке файла. Файл не обработан."
Else ' файл успешно открыт
Set sh = WB.Worksheets("Сбор")
LastRow = WorksheetFunction.CountIf(sh.Range(sh.Cells(4, 2), sh.Cells(Cells(Rows.Count, 2).End(xlUp).Row, 2)), ">" & 0) + 5
Set ra = sh.Range(sh.Range("a4"), sh.Range("b" & LastRow + 1)).Resize(, 36)
' ==== переносим данные в наш файл (shd - кодовое имя листа, куда помещаем данные)
shd.Range("a" & shd.Rows.Count).End(xlUp).Offset(1).Resize(ra.Rows.Count, ra.Columns.Count).Value = ra.Value
WB.Close False: DoEvents ' закрываем обработанный файл без сохранения изменений
pi.Log vbTab & "Файл успешно обработан."
End If
Next
|
Если строк в оригиналах в книге 5000 допустим, то обрабатываются все книги прогресс баром, а результат выгрузка только из первой открытой. Структура оригиналов такая же как и файлы 1,2,3.
Не могу понять в чем причина. подскажите пожалуйста где ошибки