Excel 将多个指定文件中的数据合并到一个主工作表中

Excel 将多个指定文件中的数据合并到一个主工作表中,excel,vba,Excel,Vba,我修改了一段时间前找到的代码,该代码允许我从“文件”对话框中选择文件,并将数据合并到单个主控表中。代码按原样工作,但我需要一些帮助来更改功能 不必手动选择文件,我希望宏自动选择5个始终具有相同文件名和文件路径的文件 我认为需要更新的代码部分是Application.FileDialog(msoFileDialogOpen)部分 Dim CurrentBook As Workbook Dim ws As Worksheet Set ws = ThisWorkbook.Sheets("Import"

我修改了一段时间前找到的代码,该代码允许我从“文件”对话框中选择文件,并将数据合并到单个主控表中。代码按原样工作,但我需要一些帮助来更改功能

不必手动选择文件,我希望宏自动选择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个文件合并到一个主控表中。

是,这是需要更新的部分。你试过什么了吗?实际上,您需要做的就是用文件路径数组替换该部分。
Dim filepath
,然后
filepath=array(“path1”、“path2”、“path3”、…)
,然后将FileIdx=LBound(filepath)的循环更改为
,再更改为UBound(filepath)
,然后
设置CurrentBook=Workbooks.Open(filepath(FileIdx))