Excel VBA 变量值范围 - 为所有子变量赋值

Excel VBA Variable value Scope - assign value to a variable for all subs

我正在编写一个包含多个子模块的模块,我需要一些变量在所有模块中具有相同的值。我知道将变量声明为

Public varname as vartype

但是如何为这样的变量分配全局值?

谢谢

对于工作表对象(与此相关的任何对象),您需要执行以下操作:

在标准代码模块中:

Public varName As Excel.Worksheet

Workbook_Open()事件中:

Private Sub Workbook_Open()
    Set varName = Sheets("mySheet")
End Sub

然后您可以在该工作簿的任何其他模块中引用 varName,它将指向您的工作表对象。


从您的 question/comments 看来,您实际上想要某种对象常量,这在 VBA 中无法实现 - 请参阅 了解更多信息。

如果您指的是 数据类型,例如 StringIntegerLong,那么您可以使用常量而不是变量,但是常量的值一旦被声明就不能改变(类似于 'constant' 的定义)即

Public Const someName As String = "Macro Man"
Public Const someNumber As Long = "1234567890"
Public Const someInt As Integer = "1453"