【问题标题】:Defining variables on Excel VBA在 Excel VBA 上定义变量
【发布时间】:2018-11-14 07:57:10
【问题描述】:

亲爱的,

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

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

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

我该怎么做? 非常感谢

布鲁诺·莱利

【问题讨论】:

  • 您需要使用全局变量(在任何方法之外声明并可能标记为Public
  • 如果您所指的“系统启动”是“打开Excel文件”,那么您可以使用Workbook_Open event自动执行代码。

标签: vba variables module public


【解决方案1】:

就像 Tim Williams 所说,您需要一个全局变量。最佳实践是在代码块的声明块(第一行)中声明它。

要使其仅在代码模块中可用: Private booRadio as Boolean

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

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

或者 - 更好地阅读代码审查并且喜欢我感觉更健壮 - 你使用一个事件来初始化启动状态。例如。就像 ashleedawg 所说,您可以为此使用 workbook_open 事件。在这种情况下,如果您想在 ThisWorkbook 代码之外访问变量,则需要使用 Public 语句修饰变量。

编辑:

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

Private Sub Workbook_Open()
    booRadio = True
    End Sub

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

【讨论】:

  • 好的,我明白了,但是我应该如何以及在哪里“声明”初始值?示例...最初我想要 booRadio = "ON"
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-05-15
相关资源
最近更新 更多