我想声明一些全局变量。我想要做的是初始化这些变量,然后在宏中使用它们,并在其他宏中更改它们的值。
我开始把它写成公共变量:
Option Explicit
'definition of global variables
Public r_start As Integer
Public r_end As Integer
Public c_little As Integer
Public c_big As Integer
Public c_sel_start As Integer
Public c_sel_end As Integer
Public c_data_start As Integer
Public c_data_end As Integer
Public Sub Init_Globals()
' Access global variable initialization
r_start = 20
r_end = 833
c_little = 6
c_big = 5
c_sel_start = 1
c_sel_end = 4
c_data_start = 11
c_data_end = 101
End Sub
这里的问题是我必须在每个SubProcedure中调用Sub_Init_Globals(),因此如果我想在其他SubProcedures中更改全局变量的初始值,则不会进行这些更改。
您知道创建此类变量的方法吗?
答案 0 :(得分:1)
据我所知,这些只是起步价值,为您提供下一个选择:
1.)您可以声明这些变量并在Workbook_Open子中分配值
更多Is it possible to declare a public variable in vba and assign a default value?
2.)使用由这些值组成的支持表创建将隐藏的单独工作表,在这种情况下,即使关闭工作簿,也将保存对这些值的所有更改。
3.)声明常量并将其值分配给Procedures中的其他变量。
答案 1 :(得分:0)
Public Const YourVariableName as Integer = 1
任何用户模块顶部的(或其他任何类型或值)似乎都能解决问题。