范围选择的运行时错误“1004”

时间:2014-02-02 11:31:38

标签: excel vba excel-vba

我在此代码上收到运行时错误'1004' sh2是另一个文件的特定表。我不想激活第二张表,只需使用它然后关闭文件。我在其他情况下得到了错误

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

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

PS。我正在使用excel 2013,并且在此代码之前将y设置为0

3 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

您的原始代码对我有用 - 如果您放弃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

答案 2 :(得分:0)

我认为如果您从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))

未经测试