在Excel VBA上定义变量

问题描述 投票:1回答:1

亲爱,

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

示例:加载系统时,变量RADIO必须等于“OFF”,但在使用过程中,用户会将此值更改为“ON”,甚至再次更改为“OFF”。

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

我该怎么做?非常感谢

布鲁诺莉莉

vba variables module public
1个回答
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文件时初始化变量,因为该事件会自动生成。

© www.soinside.com 2019 - 2024. All rights reserved.