我試圖尋找很多,但找不到滿意的答案。對不起,如果這是一個轉發。合併多個excel文件,同時保持頭文件只從第一個文件
我基本上想要的是將多個excel文件合併到一個工作簿中。我只想保留第一個excel文件的標題行,並忽略其餘excel文件的標題行(因爲它們都是相同的)。所以最終結果應該是來自第一個excel文件的Header +數據,並且從剩餘的Excel文件中我只需要數據行,而不是具有與第一個文件類似的列標題的第一行。 下面的副本粘貼所有excel文件中的所有行和列。感謝你們對我的幫助。
For wbCounter = 1 To UBound(books)
Set wbSource = oExcel.Workbooks.Open(books(wbCounter))
For wsCounter = 1 To wbSource.Sheets.Count
Set wsSource = wbSource.Sheets(wsCounter)
If wsSource.Name Like selectSheetStr Then
emptySheet = True
If cbOptionIgnoreEmpty.Value = True And wsSource.UsedRange.Address = "$A$1" Then
emptySheet = True
Else
emptySheet = False
End If
If emptySheet = False Then
mergedWorksheetName = wsSource.Name
sheetExist = SheetExists(mergedWorksheetName, wbResult)
If (cbOptionAppendData.Value = True And sheetExist = True) Then
Set wsMergeResult = wbResult.Sheets(mergedWorksheetName)
wsSource.UsedRange.Copy
wsMergeResult.Cells(wsMergeResult.UsedRange.Rows.Count + 1, 1).Resize(wsSource.UsedRange.Rows.Count, wsSource.UsedRange.Columns.Count).PasteSpecial Paste:=xlPasteAll, Operation:=xlNone
mergedWorksheetCount = mergedWorksheetCount + 1
'Name of Worksheet
wsResult.Cells(mergedWorksheetCount + 1, 1) = wsMergeResult.Name
'Fullpath of Workbook
wsResult.Cells(mergedWorksheetCount + 1, 2) = wbSource.FullName
Else
wsSource.Copy After:=wbResult.Sheets(wbResult.Sheets.Count)
mergedWorksheetCount = mergedWorksheetCount + 1
wsResult.Cells(mergedWorksheetCount + 1, 1) = .ActiveSheet.Name
wsResult.Cells(mergedWorksheetCount + 1, 2) = wbSource.FullName
End If
End If
End If
Next wsCounter
wbSource.Close SaveChanges:=False
Next wbCounter
謝謝索倫。它確實從其餘的Excel文件中刪除了列名。還有一件事要問你希望你不會介意,因爲我在我剩餘的Excel文件中有1行記錄,它是複製粘貼行兩次。所以第二張excel表格(只有一行記錄)中的記錄被複制兩次在master excel文件中(我的意思是最終合併的excel工作簿)。你有什麼想法,爲什麼會這樣?再次感謝您的幫助。 – Kashif77
我很害怕我不會很激動地理解你的第二個問題。也許最好在一個新問題中描述這個問題? Pleace接受如果它爲你工作的答案。 –
謝謝索倫。我會添加一個新問題。 – Kashif77