我想知道是否有人可以帮助我。
我正在使用下面的代码允许用户将来自不同文件夹的多个工作簿合并为一个“摘要”工作表。
Sub Merge()
Dim DestWB As Workbook, WB As Workbook, WS As Worksheet, SourceSheet As String
Set DestWB = ActiveWorkbook
SourceSheet = "Input"
startrow = 7
FileNames = Application.GetOpenFilename( _
filefilter:="Excel Files (*.xls*),*.xls*", _
Title:="Select the workbooks to merge.", MultiSelect:=True)
If IsArray(FileNames) = False Then
If FileNames = False Then
Exit Sub
End If
End If
For n = LBound(FileNames) To UBound(FileNames)
Set WB = Workbooks.Open(Filename:=FileNames(n), ReadOnly:=True)
For Each WS In WB.Worksheets
If WS.Name = SourceSheet Then
With WS
If .UsedRange.Cells.Count > 1 Then
dr = DestWB.Worksheets("Input").Range("C" & DestWB.Worksheets("Input").Rows.Count).End(xlUp).Row + 1
Lastrow = .Range("C" & Rows.Count).End(xlUp).Row
If Lastrow >= startrow Then
.Range("A" & startrow & ":AE" & Lastrow).Copy
DestWB.Worksheets("Input").Cells(dr, "A").PasteSpecial xlValues
End If
End If
End With
Exit For
End If
Next WS
WB.Close savechanges:=False
Next n
End Sub
代码可以工作,但是我想稍微调整一下,这样用户不必手动选择要合并的文件,宏就会读取文件名和文件路径的列表并自动复制和粘贴相关数据进入“摘要”表。
我已经设置了我的摘要工作簿,因此有一个名为“Lists”的工作表,文件名列在B3:B10和C3:C10中,是关联的文件路径。我搜索了“Stackoverflow”并进行了Google搜索,虽然我已经在这个主题上发现了很多帖子,但它们并没有告诉我如何从文件名和路径列表中读取,而是对特定的硬编码目录不符合我的需要。
我只是想知道是否有人可能会看到这个并提供一些关于我如何能够实现这一目标的指导。
非常感谢和亲切的问候
答案 0 :(得分:1)
请使用addin RDBMerge。
RDBMerge是一种用户友好的方式从多个Excel工作簿合并数据, 将csv和xml文件放入摘要工作簿