VBA: declaring/setting 全局和永久变量对象并在其他 Subs/Functions 中访问

VBA: declaring/setting global and permanent variable objects and accessing in other Subs/Functions

我想声明 variable/objects 应该是:

不需要使用 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

使用工厂初始化全局对象

Factory.bas

Public Function GetHS() as WorkSheet
  GetHS = ActiveWorkBook.Sheets(1)
End Function

Module1.bas
Sub HistCheck()
    Factory.GetHS().Activate
End Sub

您需要将全局变量放在模块中,而不是工作簿或 sheet*。

Modeul1中:

Global Public HS As Worksheet

只有模块可以声明可在整个工作中使用的变量sheet 对象、子程序和函数。

您将这段代码放在工作簿对象下是正确的

Workbook之下:

Private Sub WorkbookOpen()
  Set HS = ActiveWorkbook.Sheets(1) 
End Sub

将这两项放在适当的位置后,您可以将如下代码放在文档的任何位置,当然只要文档加载到内存中即可。

Sub HistCheck()
  HS.Activate
End Sub

如果您有任何问题,请写回确切的错误消息,以便进行故障排除。