我试图将当前工作簿的第一张图纸分配给图纸对象,但是出现运行时错误“ 91”,对象变量或未设置块变量的错误。
Sub Test
Dim InSheet as Worksheet
InSheet = ThisWorkbook.Sheets("Sheet1")
End Sub
但是我可以像这样遍历工作表集合
For Each ws in ThisWorkbook.Sheets
Debug.Print ws.Name
Next
Sheets(“ Sheet1”)或Sheets(1)不起作用。我究竟做错了什么?
任何帮助将不胜感激。 谢谢
答案 0 :(得分:2)
假设工作簿中有一个名为“ Sheet1”的工作表,则只需要使用Set
,更好的是,如果您知道它是工作表而不是图表工作表,请使用Worksheets
:< / p>
Sub Test
Dim InSheet as Worksheet
Set InSheet = ThisWorkbook.Worksheets("Sheet1")
End Sub
但是您可能会发现,在属性窗口中给工作表一个类似于CodeName
的{{1}}很容易,然后您就可以在代码中引用它,而不管是否有人更改了它的名称,例如所以:
InSheet