在VBA中,我想通过字符串名称引用不同工作簿中的工作表。
以下返回错误:
Set oSht = Worksheets( "'[My Book.xlsb]MySheet'" )
Set oSht = Evaluate( "'[My Book.xlsb]MySheet'" )
我知道我可以说:
Set oSht = Workbooks("My Book.xlsb").Sheets("MySheet")
但寻找一种不使用Workbooks集合的方法。
最佳答案
您可以使用.Parent的Range object。
Set oSht = Range("'[My Book.xlsb]MySheet'!A1").Parent
之所以可行,是因为.Range对象接受并解释了描述特定单元格的各种文本。如果您向下钻取到单个单元格并使用它来调用.parent,则可以获取工作表参考。
如果有可能关闭My Book.xlsb,请使用Workbook.FullName property的等效项,而不仅仅是Workbook.Name property。