这个问题在这里已经有了答案:
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/