【问题标题】:Merge Multiple Workbooks From Different Folders Into One将不同文件夹中的多个工作簿合并为一个
【发布时间】:2013-03-03 13:45:17
【问题描述】:

我想知道是否有人可以帮助我。

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

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

代码有效,但我想稍微调整一下,这样用户就不必手动选择要合并的文件,宏读取文件名和文件路径的列表并自动复制和粘贴将相关数据放入“摘要”表中。

我已经设置了我的摘要工作簿,因此有一个名为“列表”的工作表,其中列出了 B3:B10 中的文件名和 C3:C10 中的关联文件路径。我搜索了“Stackoverflow”并进行了谷歌搜索,虽然我找到了很多关于这个主题的帖子,但它们并没有告诉我如何从文件名和路径列表中读取,而是硬编码一个特定的不适合我需要的目录。

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

非常感谢和亲切的问候

【问题讨论】:

    标签: excel excel-2003 vba


    【解决方案1】:

    请使用插件 RDBMerge。

    RDBMerge 是一种用户友好的方式来合并来自多个 Excel 工作簿的数据, csv 和 xml 文件到摘要工作簿中

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

    【讨论】:

    • 嗨@user2063626,非常感谢您抽出宝贵时间回复我的帖子和链接。
    猜你喜欢
    • 2021-01-30
    • 2014-12-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-02
    • 1970-01-01
    相关资源
    最近更新 更多