因此,有几种方法可以在Excel中设置工作表。
set WS = Sheets("Name Here!")
set WS = WB.Sheets("Name Here!")
set WS = shNameOfTheSheetObject
但是,似乎没有办法做
set WS = WB.shNameOfTheSheetObject
如果可能的话,我想知道如何获得这种参考。我喜欢对代码进行非常非常明确的说明(也许太多了),知道是否有多个正在打开的工作簿在打开,这很有用。
答案 0 :(得分:3)
我认为通过代号名称的访问方式如何工作有些混乱。通过ThisWorkbook.Worksheets("SheetName")
获取工作表时,您查询工作簿上的集合;当您使用的代号,你会得到包含项目,它实现了Worksheet
接口VBA项目的相应部分。
两者都是同一个对象,但是标识符的解析采用不同的路径:工作簿不了解VBA组件。因此,随着@Comintern在评论中提到的,你只能使用含有VBA项目的进一步限定的项目名称。该名称是您通过项目属性对话框设置的名称。如果不进行更改,它将在Excel中始终为VBAProject
,这不是很有帮助。