公共还是常数?

时间:2017-07-20 08:28:29

标签: excel excel-vba initialization vba

我想声明一些全局变量。我想要做的是初始化这些变量,然后在宏中使用它们,并在其他宏中更改它们的值。

我开始把它写成公共变量:

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中更改全局变量的初始值,则不会进行这些更改。

您知道创建此类变量的方法吗?

2 个答案:

答案 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 
任何用户模块顶部的

(或其他任何类型或值)似乎都能解决问题。