2016-09-20 26 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

相關問題