【发布时间】:2021-05-17 14:13:20
【问题描述】:
我在 1 个工作簿中有 200 张工作表,每张工作表平均有 65,000 条记录。我正在尝试构建一个宏,将 1 个 Excel 文件中的所有工作表合并为新 Excel 文件中的最小工作表数。由于 Excel 有 1.xxx 万条记录的限制,因此新文件必须有 1 张以上的表格,但我希望在新文件/选项卡上尽可能多地合并。
以下是我迄今为止构建的内容,但我什至很难正确复制和过去数据,更不用说在需要时添加新工作表了。 有人可以帮忙吗?
Sub Combine()
Dim J As Integer
Dim s As Worksheet
Dim wb As Workbook
Set wb = ActiveWorkbook
Set ws = wb.ActiveSheet
Sheets(1).Select
'Opens initial file
strFile = Application.GetOpenFilename
Workbooks.Open strFile
Set INITIALFILE = ActiveWorkbook
' copy headings
Sheets(1).Activate
Range("A1").EntireRow.Select
Selection.Copy
wb.Sheets("Sheet1").Activate
Sheets("Sheet1").Range("A" & Sheets(1).Rows.Count).End(xlUp).Offset(0, 0).PasteSpecial
INITIALFILE.Activate
For Each s In ActiveWorkbook.Sheets
If s.Name <> "Combined" Then
Application.GoTo Sheets(s.Name).[a1]
Selection.CurrentRegion.Select
' Don't copy the headings
Selection.Offset(1, 0).Resize(Selection.Rows.Count - 1).Select
Selection.Copy
wb.Sheets("Sheet1").Activate
Sheets("Sheet1").Range("A" & Sheets(1).Rows.Count).End(xlUp).Offset(1, 0).PasteSpecial
INITIALFILE.Activate
End If
Next
End Sub
【问题讨论】:
-
首先删除
On Error Resume Next。它只会隐藏错误。 -
@DarrellH 哦,我做到了,我想我解决了复制粘贴问题(上面更改了代码)