首页 > 解决方案 > 复制单元格范围会生成对象定义错误

问题描述

我正在尝试将粘贴从分配的变量工作表复制到另一个。

我已经能够通过录制来完成,但我想知道如何手动完成。

这是我制作的代码:

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

在复制代码中。

标签: excelvba

解决方案


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"

推荐阅读