我想选择位于Excel工作簿第一张上的范围,无论它是否处于活动状态。
Set WorkRng = Sheets(1).Range(Cells(9, 4), Cells(39, colNum))
这将返回错误:
Run-time error: 1004
Application-defined or object-defined error
仅在未选择第一张纸时
注意:colNum = 11
如何解决此错误?
答案 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
。这意味着它们都是从同一张纸上拍摄的。否则它是不合逻辑的。