VBA: declaring/setting 全局和永久变量对象并在其他 Subs/Functions 中访问
VBA: declaring/setting global and permanent variable objects and accessing in other Subs/Functions
我想声明 variable/objects 应该是:
- 全球:我将能够在所有Subs/Functions
中使用它们
- 永久:一些事件会触发那些潜艇,变量应该仍然是accessible/available给潜艇。
不需要使用 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
如果您有任何问题,请写回确切的错误消息,以便进行故障排除。
我想声明 variable/objects 应该是:
- 全球:我将能够在所有Subs/Functions 中使用它们
- 永久:一些事件会触发那些潜艇,变量应该仍然是accessible/available给潜艇。
不需要使用 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
如果您有任何问题,请写回确切的错误消息,以便进行故障排除。