2013-03-03 65 views
0

我想知道是否有人能够帮助我。将不同文件夹中的多个工作簿合并为一个

我正在使用下面的代码,允许用户将来自不同文件夹的多个工作簿合并到一个“摘要”工作表中。

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搜索,尽管我已经在这个主题上发现了许多帖子,但他们没有告诉我如何从文件名和路径列表中读取,而是对特定的硬编码目录不适合我的需要。

我只是想知道是否有人可以看看这个请,并提供一些指导我如何能够实现这一目标。

非常感谢和亲切的问候

回答

1

请使用插件RDBMerge。

RDBMerge是从多个Excel工作簿合并数据, CSV和XML文件转换成一个总结工作簿

http://www.rondebruin.nl/merge.htm

+0

嗨@ user2063626用户友好的方式,非常感谢您在百忙之中回复时间我的帖子和链接。 – IRHM 2013-03-04 17:47:37

相关问题