在Excel VBA上定义变量

时间:2018-06-04 22:46:31

标签: vba variables module public

逗人,

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

实施例: 加载系统时,变量RADIO必须等于" OFF",但在使用过程中,用户会将此值更改为" ON",甚至更改为" OFF& #34;试。

此信息(RADIO)将在系统在其他一些页面中的使用期间使用。

我该怎么办? 非常感谢你

Bruno Lelli

1 个答案:

答案 0 :(得分:1)

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

仅在代码模块中提供它:         Private booRadio as Boolean

要在整个VBA项目中使用它,即所有模块,用户表单以及工作簿和工作表事件:         Public booRadio as Boolean

当VBA启动时,所有布尔变量都被初始化为False(同样,所有Integer或Long初始化为0,String为""等)。这可用于在系统启动后具有已知的初始状态。

或者 - 在代码评论中阅读更好,而且我感觉更健壮 - 您使用事件来初始化启动状态。例如。像ashleedawg所说,你可以使用workbook_open事件。在这种情况下,如果要在ThisWorkbook代码之外访问它,则需要使用Public语句对变量进行dacelared。

编辑:

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

Private Sub Workbook_Open()
    booRadio = True
    End Sub

这将使用事件Workbook_Open在每次打开Excel文件时初始化变量,因为该事件会自动升高。