我正在为 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
我想知道是否有人可以告诉我这是否是不好的做法,如果是,更好的做法是什么?
最佳答案
我通常会做完全相同或另外两件事,具体取决于应用程序的大小。如果是小事,我就用你的方法。然而,这些是我使用的其他方法。
第一种方法:
如果用户应该更改密码或默认值,我会制作一个单独的表,称为“设置”,并将它们写在那里。然后我为密码创建一个公共(public)函数,如下所示:
public function GetPassword as string
GetPassword = [set_password]
end function
第二种方法:
如果这是一个包含大量常量和公共(public)变量的大型应用程序,那么作用域会变得有些“脏”,并且很难找到变量。因此,我创建了一个常量类并在那里声明它们。然后,调用它们就更容易了。
类似这样的事情:
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
我得到了我想要的想。这样范围就更清晰了。您还可以构建多于一类的常量,具体取决于它们的用途。
关于vba - 使用全局常量存储环境变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41587034/