[英].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.