VBA中用户定义的常量类型

时间:2015-08-05 20:38:17

标签: vba

我想在VBA中定义自定义数据类型,并使用它来创建一些用户定义的常量。例如:

Public Type Person
    Name as String
    Age as Integer
End Type

Public Sub CreatePerson
    Dim singer as Person
    singer.Name = "John"
    singer.Age = 37
End Sub

我想使singer保持不变,这在同一模块的其他子程序/函数中是可见的。可能吗?如果不是,那么存储彼此连接的常量值的最佳方法是什么(如上面NameAge连接的示例中所示)?

1 个答案:

答案 0 :(得分:3)

我会这样做。

模块中的代码:

Option Explicit

Public Type Person
    Name As String
    Age As Integer
End Type


Private cvsinger As Person

Public Function singer() As Person

    Static ConstantHasBeenSet  As Boolean

    If Not ConstantHasBeenSet Then
        cvsinger.Name = "John"
        cvsinger.Age = 37
    End If

    singer = cvsinger

End Function

Public Sub CreatePerson()

    Debug.Print singer.Name, singer.Age

End Sub

这是一个相当简单的情况,但是当找到默认值的代码需要更长的时间来处理使用ConstantHasBeenSet变得有价值时

(请注意,我也会使用类似的技术来设置类中属性的默认值)