Я адаптировал код, который я нашел некоторое время назад, который позволяет мне выбирать файлы из диалогового окна «Файл» и объединяет данные в один мастер-лист. Код работает как есть, но мне нужна помощь, чтобы немного изменить функциональность.
Вместо того, чтобы вручную выбирать файлы, я бы хотел, чтобы макрос автоматически выбирал 5 файлов, которые всегда будут иметь одинаковое имя файлаи путь к файлу.
Я думаю, что часть кода, которая нуждается в обновлении, - это раздел Application.FileDialog(msoFileDialogOpen)
.
Dim CurrentBook As Workbook
Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets("Import")
Dim IndvFiles As FileDialog
Dim FileIdx As Long
Dim i As Integer, x As Integer
ChDrive "P:\"
'----Opens File Dialog window--------
Set IndvFiles = Application.FileDialog(msoFileDialogOpen)
With IndvFiles
.InitialFileName = "FILE PATH GOES HERE"
.AllowMultiSelect = True
.Title = "Multi-select target data files:"
.ButtonName = ""
.Filters.CLEAR
.Filters.Add ".xls files", "*.xls"
.Show
End With
For FileIdx = 1 To IndvFiles.SelectedItems.Count
Set CurrentBook = Workbooks.Open(IndvFiles.SelectedItems(FileIdx))
For Each Sheet In CurrentBook.Sheets
Dim LRow1 As Long
LRow1 = ws.Range("A" & ws.Rows.Count).End(xlUp).Row
Dim LRow2 As Long
LRow2 = CurrentBook.ActiveSheet.Range("A" &
CurrentBook.ActiveSheet.Rows.Count).End(xlUp).Row
'Range is Columns A to Z
Dim ImportRange As Range
Set ImportRange = CurrentBook.ActiveSheet.Range("A2:Z" & LRow2)
ImportRange.Copy
ws.Range("A" & LRow1 + 1).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Next
CurrentBook.Close False
Next FileIdx
Цель состоит в том, чтобы запустить макрос и автоматически объединить 5 файловв один мастер лист.