Консолидация данных из нескольких указанных файлов в 1 мастер-лист - PullRequest
0 голосов
/ 04 ноября 2019

Я адаптировал код, который я нашел некоторое время назад, который позволяет мне выбирать файлы из диалогового окна «Файл» и объединяет данные в один мастер-лист. Код работает как есть, но мне нужна помощь, чтобы немного изменить функциональность.

Вместо того, чтобы вручную выбирать файлы, я бы хотел, чтобы макрос автоматически выбирал 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 файловв один мастер лист.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...