【发布时间】:2011-01-05 16:55:01
【问题描述】:
我正在创建一个相当大的宏,目前它需要 5 个工作簿(可能会随着时间的推移而增加)和多个工作表,并将它们组合成一个工作簿。
现在,我认为完成我必须做的所有各种任务的最简单方法是声明对工作簿的全局引用。但这似乎不起作用。
所以,我将其声明为:
Public E1_workbook As Workbook
然后当宏启动时,它会实例化它。
Private Sub Begin()
...
Set E1_workbook = Workbooks.Open(Filename:="Workbook name")
...
'Do other stuff
...
Whatever
...
'Close workbooks and free up resources...
...
End Sub
然后在另一个子程序中进一步向下,我尝试使用工作簿:
private sub Whatever()
E1_workbook.Worksheets("worksheet name").Select
但是这将失败,说明“工作表类的选择方法失败”
即使我可以将上面“Whatever()”子中的确切行复制到“Begin()”子中,它也可以正常工作。
为什么?
TIA
(为了保护无辜,工作簿和工作表的名称已更改)
【问题讨论】:
标签: vba excel-2007