excel - 复制单元格范围会生成对象定义错误
问题描述
我正在尝试将粘贴从分配的变量工作表复制到另一个。
我已经能够通过录制来完成,但我想知道如何手动完成。
这是我制作的代码:
Sub Parse_Reportable()
Dim ws As Worksheet
Sheets.Add.Name = "Copy to Reportable or TAK"
Set ws = Sheets("Copy to Reportable or TAK")
Sheets("sheet1").Select
Range("H3", Cells.Columns(8).End(x1Down)).Copy
ws.Cells(2, 2).Paste
End Sub
运行它会创建工作表,但会给我一个
object defined error
在复制代码中。
解决方案
Cells.Columns(8).End(x1Down)
会给你错误。它也有一个错字。x1Down
而不是使用xlDown
,使用THISxlUp
查找最后一行,然后构造要复制的范围。
这是你正在尝试的吗?(未经测试)
Option Explicit
Sub Parse_Reportable()
Dim rngToCopy
Dim ws As Worksheet
Dim lRow As Long
Sheets.Add.Name = "Copy to Reportable or TAK"
Set ws = Sheets("Copy to Reportable or TAK")
With Sheets("sheet1")
lRow = .Range("H" & .Rows.Count).End(xlUp).Row
Set rngToCopy = .Range("H3:H" & lRow)
End With
rngToCopy.Copy ws.Cells(2, 2)
End Sub
注意:如果在使用该名称命名新工作表之前已经存在工作表“复制到可报告或 TAK ” ,您可能还想删除它,否则您将再次收到错误。
On Error Resume Next
Application.DisplayAlerts = False
Sheets("Copy to Reportable or TAK").Delete
Application.DisplayAlerts = True
On Error GoTo 0
Sheets.Add.Name = "Copy to Reportable or TAK"