使用对象浏览器中定义的工作表名称和工作簿定义来设置工作表

时间:2019-01-30 16:37:51

标签: excel vba

因此,有几种方法可以在Excel中设置工作表。

set WS = Sheets("Name Here!")
set WS = WB.Sheets("Name Here!")
set WS = shNameOfTheSheetObject

但是,似乎没有办法做

set WS = WB.shNameOfTheSheetObject

如果可能的话,我想知道如何获得这种参考。我喜欢对代码进行非常非常明确的说明(也许太多了),知道是否有多个正在打开的工作簿在打开,这很有用。

1 个答案:

答案 0 :(得分:3)

我认为通过代号名称的访问方式如何工作有些混乱。通过ThisWorkbook.Worksheets("SheetName")获取工作表时,您查询工作簿上的集合;当您使用的代号,你会得到包含项目,它实现了Worksheet接口VBA项目的相应部分。

两者都是同一个对象,但是标识符的解析采用不同的路径:工作簿不了解VBA组件。因此,随着@Comintern在评论中提到的,你只能使用含有VBA项目的进一步限定的项目名称。该名称是您通过项目属性对话框设置的名称。如果不进行更改,它将在Excel中始终为VBAProject,这不是很有帮助。