如何将完全限定的Excel工作表名称传递给VBA?

3
在VBA中,我希望通过字符串名称引用不同工作簿中的工作表。
以下代码会返回错误:
Set oSht = Worksheets( "'[My Book.xlsb]MySheet'" )
Set oSht = Evaluate( "'[My Book.xlsb]MySheet'" )

我知道可以这样说:

Set oSht = Workbooks("My Book.xlsb").Sheets("MySheet")

但是寻求一种不使用工作簿集合的方法。

1个回答

5

您可以使用范围对象.Parent

Set oSht = Range("'[My Book.xlsb]MySheet'!A1").Parent

这种方法有效是因为.Range对象接受和解释更多描述特定单元格的文本。如果深入到单个单元格并使用它来调用.parent,您可以实现工作表引用。
如果存在My Book.xlsb可能被关闭的情况,请使用Workbook.FullName property的等效项,而不仅仅是Workbook.Name property

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接