在excelvba上定义变量

在excelvba上定义变量,vba,variables,module,public,Vba,Variables,Module,Public,亲爱的 我正在使用Excel VBA启动一个新项目,我想声明在系统初始化期间加载的一些变量,但在使用过程中可能会更改。我怎么做 例如: 加载系统时,可变无线电必须等于“OFF”,但在使用过程中,用户会将该值更改为“ON”,甚至再次更改为“OFF” 此信息(无线电)将在系统使用期间在其他一些页面中使用 我怎么做? 多谢各位 布鲁诺·莱利正如蒂姆·威廉姆斯所说,你需要一个全局变量。最佳实践是在代码mudule的声明块(第一行)中声明它 要使其仅在代码模块中可用,请执行以下操作: Private bo

亲爱的

我正在使用Excel VBA启动一个新项目,我想声明在系统初始化期间加载的一些变量,但在使用过程中可能会更改。我怎么做

例如: 加载系统时,可变无线电必须等于“OFF”,但在使用过程中,用户会将该值更改为“ON”,甚至再次更改为“OFF”

此信息(无线电)将在系统使用期间在其他一些页面中使用

我怎么做? 多谢各位


布鲁诺·莱利

正如蒂姆·威廉姆斯所说,你需要一个全局变量。最佳实践是在代码mudule的声明块(第一行)中声明它

要使其仅在代码模块中可用,请执行以下操作:
Private booRadio作为布尔值

要使其在整个VBA项目(即所有模块、用户表单以及工作簿和工作表事件)中可用,请执行以下操作:
Public booRadio作为布尔值

当VBA启动时,所有布尔变量被初始化为False(同样,所有整数或Long变量被初始化为0,字符串被初始化为“”,等等)。这可用于在系统启动后具有已知的初始状态

或者——在代码评审中阅读哪个更好,比如——我觉得更健壮——使用事件初始化启动状态。例如,正如ashleedawg所说,您可以使用工作簿_open事件进行此操作。在这种情况下,如果要在ThisWorkbook代码之外访问变量,则需要将变量数据与Public语句关联起来

编辑:

将此代码复制到ThisWorkbook代码模块:

Private Sub Workbook_Open()
    booRadio = True
    End Sub

这将使用事件
工作簿\u Open
在每次打开Excel文件时初始化变量,因为该事件会自动引发。

如果您所指的“sysem initiation”是“打开Excel文件”然后您可以使用自动执行代码。好的,我知道了,但是我应该如何“声明”初始值?例如…最初我希望使用booRadio=“ON”