我想声明应该是的变量/对象:
使用Workbook_Open()
sub不是必需的,但它是我发现的最接近构造函数的东西......我的简化结构:
在ThisWorkbook
:
Public HS As Worksheet <-- the global variable
Private Sub WorkbookOpen()
Set HS = ActiveWorkbook.Sheets(1)
End Sub
在Module1
:
Sub HistCheck()
HS.Activate <-- Objet required
End Sub
答案 0 :(得分:2)
您需要将全局变量放在模块中,而不是工作簿或工作表*。
在Modeul1
:
Global Public HS As Worksheet
只有模块可以声明可以在整个工作表对象,子和函数中使用的变量。
将此代码放在工作簿对象
下是正确的在Workbook
下:
Private Sub WorkbookOpen()
Set HS = ActiveWorkbook.Sheets(1)
End Sub
将这两个项目放在适当的位置,只要文档在内存中加载,您就可以在文档的任何位置放置如下代码。
Sub HistCheck()
HS.Activate
End Sub
如果您有任何问题,请回复确切的错误消息以便进行故障排除。
答案 1 :(得分:-2)
使用工厂初始化全局对象
Factory.bas
Public Function GetHS() as WorkSheet
GetHS = ActiveWorkBook.Sheets(1)
End Function
Module1.bas
Sub HistCheck()
Factory.GetHS().Activate
End Sub