在范围select上运行时错误“1004”

在这段代码中,我得到运行时错误“1004”
sh2是另一个文件上的特定工作表。 我不想激活第二张纸,只是使用它,然后closures文件。 我得到我的错误在其他条件

If sh2.Range(sh2.Cells(1, y + 4), sh2.Cells(1, y + 4)) <> "" Then y = y + 1 Else: sh2.Range(sh2.Cells(1, 4), sh2.Cells(114, (y + 4) - 1)).Select Selection.Copy 

当我试图debugging时:y是49(因为它必须是),而在else之下的范围的单元格获得它们自己的正确的值。 我的错误在哪里?

PS。 我使用的是Excel 2013,在此代码之前y被设置为0

尝试sh2.Range(sh2.Cells(1, 4), sh2.Cells(114, (y + 4) - 1)).Copy (不select)我认为你不能select任何东西,除非你激活它

你原来的代码为我工作 – 如果你放弃Select会发生什么?

 Dim sh2 As worksheet Set sh2 = Sheets(2) y = 49 If sh2.Range(sh2.Cells(1, y + 4), sh2.Cells(1, y + 4)) <> "" Then y = y + 1 Else sh2.Range(sh2.Cells(1, 4), sh2.Cells(114, (y + 4) - 1)).Copy End If 

我想如果你放弃sh2.sh2.range范围内它将工作。

sh2.Range(sh2.Cells(1, y + 4), sh2.Cells(1, y + 4))更改为

sh2.Range(Cells(1, y + 4), Cells(1, y + 4))

未经testing,但