Excel 尝试将列复制到新工作簿时显示错误
我正在尝试使用以下代码将一系列列复制到新工作簿中:Excel 尝试将列复制到新工作簿时显示错误,excel,vba,Excel,Vba,我正在尝试使用以下代码将一系列列复制到新工作簿中: Sub Rlaunch() Dim r1 As Range, r2 As Range Set r1 = Worksheets("CAPEX").Range("A:F") r1.Copy Set wbNew = Workbooks.Add With wbNew Set r2 = Range("A1") r2.Paste
Sub Rlaunch()
Dim r1 As Range, r2 As Range
Set r1 = Worksheets("CAPEX").Range("A:F")
r1.Copy
Set wbNew = Workbooks.Add
With wbNew
Set r2 = Range("A1")
r2.PasteSpecial.xlPasteValues
End With
End Sub
代码正在运行,但我发现两个问题:
谢谢。如果要粘贴到新工作簿,需要定义工作表。还建议仅移动非空单元格。 此使用阵列的替代版本可以实现您想要的功能,而且速度更快:
Option Explicit
Sub copyRng()
Dim arr, wbNew As Workbook, wsNew, lastrow As Long
lastrow = Sheet1.Cells(Rows.Count, 1).End(xlUp).Row 'Find last row in column A
arr = Sheet1.Range("A1:F" & lastrow).Value2
Set wbNew = Workbooks.Add
Set wsNew = wbNew.Sheets(1)
With wsNew
.Range(.Cells(1, 1), .Cells(UBound(arr), UBound(arr, 2))) = arr
End With
End Sub
谢谢你的回答!
Option Explicit
Sub copyRng()
Dim arr, wbNew As Workbook, wsNew, lastrow As Long
lastrow = Sheet1.Cells(Rows.Count, 1).End(xlUp).Row 'Find last row in column A
arr = Sheet1.Range("A1:F" & lastrow).Value2
Set wbNew = Workbooks.Add
Set wsNew = wbNew.Sheets(1)
With wsNew
.Range(.Cells(1, 1), .Cells(UBound(arr), UBound(arr, 2))) = arr
End With
End Sub