在Excel VBA上定义变量

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在Excel VBA上定义变量相关的知识,希望对你有一定的参考价值。

亲爱,

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

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

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

我该怎么做?非常感谢

布鲁诺莉莉

答案

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

要在代码模块中使用它: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文件时初始化变量,因为该事件会自动生成。

以上是关于在Excel VBA上定义变量的主要内容,如果未能解决你的问题,请参考以下文章

VBA-EXCEL 用变量定义范围

EXCEL VBA里我想上定义一个字符型变量,比如aaa 如何使aaa=“””,英文版的引号

excel vba中的引用变量名

excel vba中变量单元格地址在range怎么用?

EXCEL VBA 如何找到某一数据的行号和列号?

使用 vba 在 Outlook 电子邮件中添加 Excel 工作表作为附件