vba - 让 VBA 类模块的属性 - 是否可以有多个参数?

标签 vba class oop excel properties

这个问题在这里已经有了答案:





How do optional Parameters in Let/Get Properties work?

(2 个回答)


6年前关闭。




到目前为止,我对在类模块中使用 Let 属性的理解是,您可以像这样在类模块中设置它:

Dim pName as String
Public Property Let Name(Value As String)
    pName = Value
End Property

然后你在你创建了这个类的对象之后,你可以像这样设置这个属性:
MyObject.Name = "Larry"

问题:是否可以以某种方式在类属性中输入多个参数?例如:
Dim pFirstName as String, pLastName as String
Public Property Let Name(FirstName As String, LastName As String)
    pFirstName = FirstName
    pLastName = LastName
End Property

那么你将如何在类之外设置这个属性?
MyObject.Name = ??

或者这只是不可能做到的?

最佳答案

根据您的评论,如果您希望封装此逻辑,则可以使用类似于以下内容的内容。

下面包括子和函数。该函数返回一个 Person 对象:

Public Sub testing()

    Dim t As Person

    Set t = PersonData("John", "Smith")

End Sub


Public Function PersonData(firstName As String, lastName As String) As Person

    Dim p As New Person

    p.firstName = firstName
    p.lastName = lastName

    Set PersonData = p

End Function

人物等级:
Dim pFirstName As String, pLastName As String

Public Property Let FirstName(FirstName As String)
    pFirstName = FirstName
End Property

Public Property Get FirstName() As String
    FirstName = pFirstName
End Property

Public Property Let LastName(LastName As String)
    pLastName = LastName
End Property

Public Property Get LastName() As String
    LastName = pLastName
End Property

关于vba - 让 VBA 类模块的属性 - 是否可以有多个参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13823367/

相关文章:

c# - Struct 不缓存,但 Class 缓存

php - 在 PHP 中 $this-> 之后使用美元符号是什么意思?

c++ - 从基类构造函数构造派生类对象

java - 如何将 main 方法分离到它自己的类中?

python - 动态惰性类属性python

oop - 只写属性有实际应用吗?

excel - 为什么我得到一个不存在的文件名?

vba - 在VBA中替换字符串中字符的最快方法

excel - VBA excel - 使用 powershell 脚本创建 Skype 帐户

vba - 在 VBA (excel) 中循环行的最有效/最快的方法是什么?