2016-09-20 64 views
2

在VBA中,我想通过字符串名称引用不同工作簿中的工作表。如何将完全合格的Excel工作表名称传递给VBA?

以下返回错误:

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

我知道我可以说:

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

但求不使用工作簿集合的方法。

回答

4

您可以使用Range object.Parent

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

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

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

相关问题