[英]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
,它将指向您的工作表对象。
从您的问题/评论看来,您似乎实际上想要某种对象常量,这在VBA中无法实现-有关更多信息,请参见将工作簿声明为全局变量 。
如果要引用诸如String
, Integer
或Long
的值数据类型,则可以使用常量而不是变量,但是,一旦声明了常量(类似于'constant'的定义),就无法更改其值。即
Public Const someName As String = "Macro Man"
Public Const someNumber As Long = "1234567890"
Public Const someInt As Integer = "1453"
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.