从另一张纸选择范围时出错

时间:2014-05-12 16:02:46

标签: excel vba excel-vba

我想选择位于Excel工作簿第一张上​​的范围,无论它是否处于活动状态。

Set WorkRng = Sheets(1).Range(Cells(9, 4), Cells(39, colNum))

这将返回错误:

Run-time error: 1004
Application-defined or object-defined error

仅在未选择第一张纸时

注意:colNum = 11

如何解决此错误?

1 个答案:

答案 0 :(得分:3)

你在正确的轨道上,你正在使用一个显式的工作表对象(这是好的)。它崩溃的地方是你如何分配你的Range对象。

您的代码说

Set WorkRng = Sheets(1)   <-- use sheet "1" as the reference for generating the range
      .Range(
       Cells(9, 4)        <-- compose the range starting with cells R9C4 in the *Activesheet*
      , Cells(39, colNum) <-- end the range composure with cells R29C[colnum] in the *Activesheet*
      )

您需要符合所有范围参考资格

Set WorkRng = Sheets(1).Range(Sheets(1).Cells(9, 4), Sheets(1).Cells(39, colNum))

或者

With Sheets(1) 
    Set WorkRng = .Range(.Cells(9, 4), .Cells(39, colNum))
End With

请注意.Range之前的Cells。这意味着它们都是从同一张纸上拍摄的。否则它是不合逻辑的。