【发布时间】:2014-02-21 10:39:43
【问题描述】:
我尝试了很多搜索,但找不到满意的答案。抱歉,如果是转发。
我基本上想要的是将多个 excel 文件合并到一个工作簿中。我只想保留第一个 excel 文件的标题行并忽略其余 excel 文件的标题行(因为它们都是相同的)。所以最终结果应该是第一个 excel 文件和剩余 excel 文件中的 Header + 数据,我只需要数据行,而不是具有与第一个文件相似的列标题的第一行。 下面的复制粘贴所有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
【问题讨论】: