在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集合的方法。
答案 0 :(得分:4)
您可以使用.Parent的Range object。
Set oSht = Range("'[My Book.xlsb]MySheet'!A1").Parent
这是有效的,因为.Range对象接受并解释描述特定单元格的各种文本。如果深入查看单个单元格并使用它来调用.parent,则可以实现工作表参考。
如果My Book.xlsb有可能被关闭,请使用等效的Workbook.FullName property,而不仅仅是Workbook.Name property。