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