繁体   English   中英

未选择工作表时,.Copy方法失败

[英].Copy method fails when worksheet not selected

这是我的脚本的一部分,轻松循环将一些行从一个工作表复制到另一个工作表:

a = 3
With Sheets("ATD")
    Do While .Range("A" & a) <> ""
        If .Cells(a, 6).Value = "x" And .Cells(a, 8).Value = "y" Then
            .Range(Cells(a, 1), Cells(a, 10)).Copy
            Sheets("ART").Range("A" & Sheets("ART").Range("A" & Rows.Count).End(xlUp).row + 1).PasteSpecial xlPasteValues
        End If
        a = a + 1
    Loop
End With

几乎每次都失败.Range(Cells(a, 1), Cells(a, 10)).Copy行( 运行时错误'1004':应用程序定义或对象定义错误) 当我添加.Select命令时,如下所示:

a = 3
    With Sheets("ATD")
        Do While .Range("A" & a) <> ""
            If .Cells(a, 6).Value = "x" And .Cells(a, 8).Value = "y" Then
                .Select
                .Range(Cells(a, 1), Cells(a, 10)).Copy
                Sheets("ART").Range("A" & Sheets("ART").Range("A" & Rows.Count).End(xlUp).row + 1).PasteSpecial xlPasteValues
            End If
            a = a + 1
        Loop
    End With

一切正常。

我知道我可以改变。 .Copy的东西

Sheets("ATD").Range(Cells(a, 1), Cells(a, 10)).Value = Sheets("ART").Range(Cells(b, 1), Cells(b, 10)).Value

但我有另一个问题。 如果.Copy函数需要,我要复制的单元格是当前选中的工作表,还是我在这里遗漏了一些东西?

你可以尝试:

.Range(.Cells(a, 1), .Cells(a, 10)).Copy

这些点非常重要,因为它们引用当前Cells ,并在With Sheets("ATD")行中设置了Sheet对象。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM