2013-03-03 1 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 

код работает, но я хотел бы, чтобы настроить это немного, так что вместо того, чтобы пользователь вручную выбрать файлы для слияния, макрос читает список имен файлов и пути к файлам и автоматически копирует и вставляет соответствующие данные в лист «Сводка».

Я установил сводную рабочую книгу, поэтому есть лист под названием «Списки» с именами файлов, перечисленными в B3: B10, а в C3: C10 - связанными файловыми путями. Я искал «Stackoverflow» и выполнял поисковые запросы Google, и хотя я нашел несколько сообщений по этой теме, они не показывают мне, как читать из списка имен файлов и путей, но довольно жесткое кодирование конкретных который не соответствует моим потребностям.

Я просто задавался вопросом, может ли кто-нибудь посмотреть на это, пожалуйста, и предложите некоторые рекомендации о том, как я могу добиться этого.

Большое спасибо и добрые пожелания

ответ

1

Пожалуйста, используйте надстройку RDBMerge.

RDBMerge является удобным способом объединить данные из нескольких книг Excel, CSV и XML-файлы в сводную Workbook

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

+0

Привет @ user2063626, большое спасибо, что нашли время, чтобы ответить на мой пост и ссылку. – IRHM