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

时间:2016-09-20 22:55:19

标签: excel vba excel-vba

在VBA中,我想通过string-name引用不同工作簿中的工作表。

以下返回错误:

Set oSht = Worksheets( "'[My Book.xlsb]MySheet'" )
Set oSht = Evaluate( "'[My Book.xlsb]MySheet'" )

我知道我可以说:

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

但是寻找一种不使用Workbooks集合的方法。

1 个答案:

答案 0 :(得分:4)

您可以使用.ParentRange object

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

这是有效的,因为.Range对象接受并解释描述特定单元格的各种文本。如果深入查看单个单元格并使用它来调用.parent,则可以实现工作表参考。

如果My Book.xlsb有可能被关闭,请使用等效的Workbook.FullName property,而不仅仅是Workbook.Name property