【问题标题】:Using Global Constants to store environment variables使用全局常量存储环境变量
【发布时间】:2017-05-26 00:24:41
【问题描述】:

我正在为 Microsoft Excel 创建一个加载项,并且我正在使用一个模块来存储变量(在运行时不会更改),这些变量可以被应用程序中的类和其他模块访问。这是一种更方便的硬编码值的方法,我可能需要在开发周期的不同点查找和替换它。

变量是诸如应用程序版本或工作簿密码之类的东西:

Option Explicit
Option Private Module

Global Const APP_ID = "XXY"
Global Const APP_VERSION = "1.00"
Global Const WORKSHEET_PASSWORD = "s0Me_pa$$w0rD"
Global Const DATA_TABLE = "tblStockData"
Global Const FORM_DEFAULT_VALUE = 200

我想知道是否有人可以告诉我这是否是不好的做法,如果是,那么更好的做法是什么?

【问题讨论】:

标签: vba excel


【解决方案1】:

根据应用程序的大小,我通常会做完全相同的事情或其他两件事。如果它是小东西,我使用你的方法。但是,这些是我使用的其他方法。

第一种方法:

如果用户要更改密码或默认值,我会制作一个单独的表格,称为“设置”,然后将它们写在那里。然后我为密码创建一个公共函数,如下所示:

public function GetPassword as string
   GetPassword = [set_password]
end function

第二种方法:

如果这是一个包含大量常量和公共变量的大型应用程序,则作用域会以某种方式“变脏”并且很难找到变量。因此,我创建了一个常量类并在那里声明它们。然后,调用它们就更容易了。

类似这样的:

Private Const p_First_COLUMN_TO_FILL = 8

Public Property Get FIRST_COLUMN_TO_FILL() As Long
    FIRST_COLUMN_TO_FILL = p_First_COLUMN_TO_FILL
End Property

因此,如果我的班级是clsConstants,我将其声明为Public objCon As clsConstants,现在有了objCon.FIRST_COLUMN_TO_FILL,我得到了我想要的。这样,范围在某种程度上更清洁。您还可以构建不止一类常量,具体取决于它们的用途。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-27
    • 1970-01-01
    • 2016-09-30
    相关资源
    最近更新 更多