无法按名称选择工作表

时间:2018-07-18 03:33:50

标签: vba

我试图将当前工作簿的第一张图纸分配给图纸对象,但是出现运行时错误“ 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)不起作用。我究竟做错了什么?

任何帮助将不胜感激。 谢谢

1 个答案:

答案 0 :(得分:2)

假设工作簿中有一个名为“ Sheet1”的工作表,则只需要使用Set,更好的是,如果您知道它是工作表而不是图表工作表,请使用Worksheets:< / p>

Sub Test
Dim InSheet as Worksheet
Set InSheet = ThisWorkbook.Worksheets("Sheet1")
End Sub

但是您可能会发现,在属性窗口中给工作表一个类似于CodeName的{​​{1}}很容易,然后您就可以在代码中引用它,而不管是否有人更改了它的名称,例如所以:

InSheet