Я некоторое время искал, пытаясь найти решение, я могу найти похожие решения, но не могу заставить работать даже с твиками и поправками.
У меня есть главная рабочая книга под названием «Master.xlsb» с 1 листом «Сводка». У меня есть список из 189 файлов в одной папке под названием «EmailAttachments».
Каждый отдельный файл будет иметь различное количество строк, поэтому я хотел бы просмотреть все файлы и скопировать их из диапазона «B7: B» и LastRow »и вставить данные ниже последней строки, содержащей данные в« Master.xlsb »( Который будет увеличиваться по мере вставки данных).
Кроме того, я хотел бы, чтобы имя файла в столбце A начиналось с «A7», поэтому я знаю, из какого файла получены данные.
Заранее спасибо.
EDIT:
Мне удалось заставить код работать ниже:
Public Sub DataToSummary()
Dim wbk As Workbook
Dim Filename As String
Dim Path As String
Dim LastRowMaster As Long
Dim DataRowsMaster As Long
Dim LastRowSource As Long
Dim FileNameSource As String
Dim i As Integer, intValueToFind As Integer
Path = "C:\Example\Path\"
Filename = Dir(Path & "*.xlsx")
Do While Len(Filename) > 0
Set wbk = Workbooks.Open(Path & Filename)
For i = 1 To 500
If Cells(i, 1).Value = intValueToFind Then
GoTo Skip
End If
Next i
LastRowSource = Cells(Rows.Count, 2).End(xlUp).Row
DataRowsSource = LastRowSource - 6
FileNameSource = Left(Filename, Len(Filename) - 5)
Workbooks(Filename).Sheets(1).Range("B7:M" & LastRowSource).Copy
Workbooks("Master.xlsb").Activate
LastRowMaster = Cells(Rows.Count, 6).End(xlUp).Row
ThisWorkbook.Sheets(1).Range("F" & LastRowMaster + 1).PasteSpecial xlPasteValues
ThisWorkbook.Sheets(1).Range("B" & LastRowMaster + 1 & ":B" & LastRowMaster + DataRowsSource).Value = FileNameSource
ThisWorkbook.Sheets(1).Range("C1:E1").Copy
ThisWorkbook.Sheets(1).Range("C" & LastRowMaster + 1 & ":E" & LastRowMaster + DataRowsSource).PasteSpecial xlPasteFormulas
Skip:
wbk.Close True
Filename = Dir
Loop
End Sub