【发布时间】:2019-07-15 06:17:17
【问题描述】:
我想在 VBA 的一个模块中定义一个全局变量,并在其他 VBA 模块中使用它。
我正在尝试关注:How do I declare a global variable in VBA?
我创建了一个名为“GlobalVariables”的新模块,首先声明了公共变量,然后在函数中设置它们的值(尝试在开放代码中执行此操作会导致错误)。我的代码如下。
但Global 变量 StartYear 似乎不适用于其他 VBA 模块。我做错了什么?
Option Explicit
Public StartYear As Integer
Public BaseYear As Integer
Function DeclareGlobalVariables()
StartYear = ActiveWorkbook.Worksheets("RunModel").Range("StartYear").Value
BaseYear = ActiveWorkbook.Worksheets("RunModel").Range("BaseYear").Value
End Function
【问题讨论】:
-
代码对我来说似乎是正确的。你真的是说你不能在其他模块中使用这个变量,还是它没有你期望的值?
-
您的代码看起来正确。我试过了,我可以访问其他模块中的变量。检查它们是否被正确分配了值。
-
DeclareGlobalVariables 应该是 sub 而不是函数,你还需要执行它,才能初始化全局变量。
-
与您的问题无关,但不要使用
Integer变量。此数据类型可能无法保存您正在使用的数值,从而导致溢出错误。