Я написал приведенный ниже код, чтобы просмотреть все файлы в каталоге и скопировать определенные значения из них и вставить его обратно в главный файл.Файловый цикл ошибочно пропускает файлы
Проблема, с которой я столкнулась, заключается в том, что код никогда полностью не проходит через все файлы, и я никогда не получаю сообщение об ошибке.
Как показано на рисунке имена файлов изображены в виде 1 - #####, затем 2 - #### и т.д.
Иногда бывает множитель первого числа, как на картинке там являются двумя 1 - ### 's, но конечные числа все еще разные.
Проблема заключается в том, что вместо того, чтобы идти по фактическому порядковому номеру, код использует только первое число и переходит от 1, 10, 11, 100 и полностью пропускает остальные.
Любые идеи о том, как это решить?
Sub ReadDataFromCloseFile()
On Error GoTo ErrHandler
Application.EnableEvents = False
Application.ScreenUpdating = False
Dim FileType As String
Dim FilePath As String
FileType = "*.xlsm*" 'The file type to search for
FilePath = "\\filepath\" 'The folder to search
Dim src As Workbook
Dim OutputCol As Variant
Dim Curr_File As Variant
OutputCol = 9 'The first row of the active sheet to start writing to
Curr_File = Dir(FilePath & FileType)
Do Until Curr_File = ""
' OPEN THE SOURCE EXCEL WORKBOOK IN "READ ONLY MODE".
Set src = Workbooks.Open(FilePath & Curr_File, True, True)
Sheets("Reporting").Range("I7:I750").Copy
Workbooks("Master.xlsm").Activate
Sheets("Sheet2").Select
Sheets("Sheet2").Cells(4, OutputCol).Select
ActiveCell.PasteSpecial Paste:=xlPasteValuesAndNumberFormats
Application.CutCopyMode = False
OutputCol = OutputCol + 1
' CLOSE THE SOURCE FILE.
src.Close False ' FALSE - DON'T SAVE THE SOURCE FILE.
Curr_File = Dir
Loop
Set src = Nothing
Application.EnableEvents = True
Application.ScreenUpdating = True
ErrHandler:
Application.EnableEvents = True
Application.ScreenUpdating = True
End Sub
Кроме того, петля фиксирует несколько 1 и 10 секунд. Он просто всегда пропускает что-либо с 2-9 в нем. –
Вы пробовали это после комментирования 'on error'? На данный момент вы просто молча возвращаетесь, если что-то пойдет не так. –
Да, я удалил эту часть из моего кода, но она по-прежнему не вызывает ошибок :( –