-2
我有大約10個包含格式相同或結構化數據的文件(前四行是信息,第五個是頭,之後的每一行都是數據本身;也是,爲保證金目的,第一欄爲空白)。我想動態地將它們合併到一個工作表中。任何想法如何做到這一點?Excel:將多個文件中的工作表動態集成到一個工作簿中
我有大約10個包含格式相同或結構化數據的文件(前四行是信息,第五個是頭,之後的每一行都是數據本身;也是,爲保證金目的,第一欄爲空白)。我想動態地將它們合併到一個工作表中。任何想法如何做到這一點?Excel:將多個文件中的工作表動態集成到一個工作簿中
你不是很具體,但你可以試試這個。它會將文件夾內的所有文件合併爲一個文件夾。你將不得不將它適應你所擁有的數據(行標題等)。
Sub MergeFiles()
'Description: Combines all files in a folder to a master file.
Dim path As String
Dim ThisWB As String
Dim lngFilecounter As Long
Dim wbDest As Workbook
Dim shtDest As Worksheet
Dim ws As Worksheet
Dim Filename As String
Dim Wkb As Workbook
Dim CopyRng As Range
Dim Dest As Range
Dim RowofCopySheet As Integer
RowofCopySheet = 3 ' Row to start on in the sheets you are copying from
ThisWB = ActiveWorkbook.Name
path = GetFolder("")
Application.EnableEvents = False
Application.ScreenUpdating = False
Workbooks.Add
ChDir path
ActiveWorkbook.SaveAs Filename:= _
(path & "combinedfilesforfolder.xlsm"), FileFormat:= _
xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False
Set shtDest = ActiveWorkbook.Sheets(1)
Filename = Dir(path & "\*.xls", vbNormal)
If Len(Filename) = 0 Then Exit Sub
Do Until Filename = vbNullString
If Not Filename = ThisWB Then
Set Wkb = Workbooks.Open(Filename:=path & "\" & Filename)
Set CopyRng = Wkb.Sheets(1).Range(Cells(RowofCopySheet, 1), _
Cells(ActiveSheet.UsedRange.Rows.count, ActiveSheet.UsedRange.Columns.count))
Set Dest = shtDest.Range("A" & shtDest.UsedRange.SpecialCells(xlCellTypeLastCell).Row + 1)
CopyRng.Copy Dest
Wkb.Close False
End If
Filename = Dir()
Loop