将大范围复制到另一个工作簿时避免剪贴板?

我有兴趣将一个工作簿的大范围复制到另一个工作簿。 目前,我正在使用复制和粘贴function。 macros在较小的文件上工作,但现在我有一个非常大的文件,并在ActiveSheet.Paste遇到错误。 我想这是因为我所复制的剪贴板太大了。 这听起来正确吗? 如果是这样,我想避免剪贴板在一起。 这是我的代码目前。

 DeptReceivedWB.Sheets(1).Cells(1, 1).CurrentRegion.Copy APPS_AuditWB.Activate APPS_AuditWB.Sheets(3).Select ActiveSheet.Cells(i + 1, 1).Select ActiveSheet.Paste ActiveSheet.Cells(i + 1, 1).EntireRow.Delete 

使用其中之一:

 Option Explicit Public Sub valuesCopy() With DeptReceivedWB.Sheets(1).Cells(1, 1).CurrentRegion .Offset(1).Resize(.Rows.Count - 1, .Columns.Count).Copy End With APPS_AuditWB.Sheets(3).Cells(1, 1).PasteSpecial xlPasteValues End Sub Public Sub directCopy1() Dim cr As Range, fr As Long, lr As Long, fc As Long, lc As Long Set cr = DeptReceivedWB.Sheets(1).Cells(1, 1).CurrentRegion fr = cr.Row: lr = fr + cr.Rows.Count - 2 fc = cr.Column: lc = fc + cr.Columns.Count - 1 Set cr = cr.Offset(1).Resize(lr, lc) With APPS_AuditWB.Sheets(3) .Range(.Cells(fr, fc), .Cells(lr, lc)).Value2 = cr.Value2 End With End Sub Public Sub directCopy2() Dim cr As Range, fr As Long, lr As Long, fc As Long, lc As Long Set cr = DeptReceivedWB.Sheets(1).Cells(1, 1).CurrentRegion fr = cr.Row: lr = cr.Rows.Count - 1 fc = cr.Column: lc = cr.Columns.Count Set cr = cr.Offset(1).Resize(lr, lc) With APPS_AuditWB.Sheets(3) .Cells(fr, fc).Resize(lr, lc).Value2 = cr.Value2 End With End Sub 

我build议你只复制你想要的范围,而不是复制(推测)标题行,然后从目标中删除它:

 Dim rgCopy as range set rgCopy = DeptReceivedWB.Sheets(1).Cells(1, 1).CurrentRegion set rgCopy = rgCopy.Resize(rgCopy.Rows.Count - 1).Offset(1) rgCopy.Copy Destination:=APPS_AuditWB.Sheets(3).Cells(i + 1, 1)