指定要应用于模块中所有子项的范围?

我一直在创build一个模块,它有多个子和function,都应用于同一张表。 在我的努力和研究清理我的代码,我发现,而不是声明每个子“昏暗”,我可以通过使用“暗淡”或“私人”在模块的最顶部声明​​。

Sub Sample() Dim DataSheet As Range 'Only declared for this sub, doesn't apply to other subs 'on the other hand, Private DataSheet As Range Sub Sample() 'declares it for each sub in this module. 

我不明白的是,有没有办法来设置值,或者在这种情况下,我想分配给“DataSheet”,将适用于整个模块的确切范围? 目前我的每个子包含,

 Set DataSheet = ThisWorkbook.Sheets(1).Range("A3:FU5002") 

由于这个范围是恒定不变的,似乎有点多余。

创build一个特殊的子进行初始化并首先运行它:

 Dim DataSheet As Range Sub RunMeFirst() Set DataSheet = ThisWorkbook.Sheets(1).Range("A3:FU5002") End Sub 

在ThisWorkbook模块中添加全局variables并使用工作簿打开事件来设置值。

 Public DataSheet As Range Private Sub Workbook_Open() Set DataSheet = ThisWorkbook.Sheets(1).Range("A3:FU5002") End Sub