如何将完全合格的Excel工作表名称传递给VBA?
在VBA中,我想通过string名称来引用不同工作簿中的工作表。
以下返回错误:
Set oSht = Worksheets( "'[My Book.xlsb]MySheet'" ) Set oSht = Evaluate( "'[My Book.xlsb]MySheet'" )
我知道我可以说:
Set oSht = Workbooks("My Book.xlsb").Sheets("MySheet")
但要寻找一种不使用Workbooks集合的方法。
您可以使用Range对象的.Parent 。
Set oSht = Range("'[My Book.xlsb]MySheet'!A1").Parent
这是有效的,因为.Range对象接受和解释描述特定单元格的更多种类的文本。 如果深入到单个单元格并使用它来调用.parent,则可以实现工作表引用。
如果有可能closuresMy Book.xlsb,请使用Workbook.FullName属性的等效值,而不仅仅是Workbook.Name属性 。