Предыдущий вопрос о синтаксисе был решен Скоттом для внесения имени файла в основную рабочую книгу.Слегка измененный новый вопрос
По сути, у меня есть сотни файлов в папке, и я копирую все данные из этих файлов в основную рабочую книгу на вкладки, где совпадают имена вкладок источника и назначения.Все работает нормально, кроме вставки имени файла рядом с скопированными данными, и проблема в том, что он заполняет только первую строку, потому что это пустая строка, которая, я думаю, из-за следующей строки:
lLastRow = wsDst.UsedRange.Rows(wsDst.UsedRange.Rows.Count).Row + 1
Вот код.Я уверен, что есть простой способ сделать это
Sub ProjectMacro()
Dim wbDst As Workbook
Dim wsDst As Worksheet
Dim wbSrc As Workbook
Dim wsSrc As Worksheet
Dim MyPath As String
Dim strFilename As String
Dim lLastRow As Long
Dim lLastColumn As Long
Dim LC As Long
Dim s As Worksheet, t As String
Dim i As Long, K As Long
K = Sheets.Count
Application.DisplayAlerts = False
Application.EnableEvents = False
Application.ScreenUpdating = False
Set wbDst = ThisWorkbook
MyPath = "C:\Users\tomhardy\Desktop\787 files\"
strFilename = Dir(MyPath & "*.xls*", vbNormal)
Do While strFilename <> ""
'loop through each worksheet in the source file
For Each wsSrc In wbSrc.Worksheets
'Find the corresponding worksheet in the destination with
the same name as the source
On Error Resume Next
Set wsDst = wbDst.Worksheets(wsSrc.Name)
On Error GoTo 0
If wsDst.Name = wsSrc.Name Then
lLastRow =
wsDst.UsedRange.Rows(wsDst.UsedRange.Rows.Count).Row + 1
lLastColumn =wsDst.UsedRange.Columns(wsDst.UsedRange.Columns.Count).Column + 1
wsSrc.UsedRange.Copy
wsDst.Range("A" & lLastRow).PasteSpecial xlPasteValues
wsDst.Cells(1,lLastColumn).Value = wbDst.FullName
End If
Application.CutCopyMode = False
Next wsSrc
wbSrc.Close False
strFilename = Dir()
Loop
Application.DisplayAlerts = False
Application.EnableEvents = False
Application.ScreenUpdating = False
End Sub