У меня есть следующий код VBA, предназначенный для прокрутки данной папки и скомпилирования всех файлов определенного типа в один рабочий лист.VBA Script останавливает часть пути через список файлов
Sub cons_data()
Dim Master As Workbook
Dim sourceBook As Workbook
Dim sourceData As Worksheet
Dim CurrentFileName As String
Dim myPath As String
Dim LastRow As Long
Dim lRow As Long
Dim i As Long
Application.ScreenUpdating = False
Application.DisplayAlerts = False
'The folder containing the files to be recap'd
myPath = "path"
'Finds the name of the first file of type .xls in the current directory
CurrentFileName = Dir(myPath & "\*.txt*")
'Create a workbook for the recap report
Set Master = ThisWorkbook
For i = 1 To Master.Worksheets.Count
With Master.Worksheets(i)
lRow = .Range("A" & .Rows.Count).End(xlUp).Row
If lRow > 1 Then .Rows("2:" & lRow).ClearContents
End With
Next i
Do
Workbooks.Open (myPath & "\" & CurrentFileName)
Set sourceBook = Workbooks(CurrentFileName)
For i = 1 To sourceBook.Worksheets.Count
Set sourceData = sourceBook.Worksheets(i)
With sourceData
LastRow = Master.Worksheets("Sheet1").Range("A" & Rows.Count).End(xlUp).Row
lRow = .Range("A" & .Rows.Count).End(xlUp).Row
.Rows("2:" & lRow).Copy Master.Worksheets("Sheet1").Rows(LastRow + 1)
End With
Next i
sourceBook.Close
'Calling DIR w/o argument finds the next .txt file within the current directory.
CurrentFileName = Dir()
Loop While CurrentFileName <> ""
MsgBox "Done"
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub
Этот сценарий отлично работает на определенных типов файлов, но по какой-то причине при запуске его в списке текстовых файлов с помощью стандартного формата (некоторые из которых являются дубликатами) он останавливается и представляет самую последнюю запись это было работая в отдельном листе Excel. Есть ли очевидная причина в том, что код может произойти?
Я просто побежал этот код на одном из моих папок и не было проблем. Возможно, вы можете добавить некоторые debug.prints. Что вы подразумеваете под «некоторые из них являются дубликатами»? –
То же самое здесь выполнялось несколько раз без проблем. Только один вопрос, почему вы очищаете все листы в книге «Мастер», если используется только один («Лист1»)? – EEM
@ WayneG.Dunn Я просто имею в виду, что есть файлы, имеющие одинаковое имя и контент. Хорошая точка на debug.prints. Если это помогает, у меня есть что-то вроде 20 000 файлов, которые я ищу, - может это создать некоторые проблемы? – 114