我有一个名为cTask的模块,其中包含以下代码:
Private pMile As String
Public Property Get Mile() As String
Mile = pMile
End Property
Public Property Let Mile(Value As String)
pMile = Value
End Property
所以在我的sub中让我说我发起
dim currtask as cTask
我想写
curtask.Mile=TIM
以及
curtask.Mile.stat=2
就像
一样worksook("qqq").sheets("okko").cells(1,1)...
如何在我的班级中执行嵌套属性?
编辑: 所以在一个名为cTask的课程
中Private pMile As cMile
Public Property Get Mile() As String
Mile = pMile
End Property
Public Property Let Mile(Value As String)
pMile = Value
End Property
在课堂cMile中我有
Private pstatus As String
Public Property Get status() As String
status = ppstatus
End Property
Public Property Let status(Value As String)
pstatus = Value
End Property
然后在我的潜艇中我所做的就是宣布
dim curtask as cTask
这是对的吗?它不起作用所以我一定错过了什么
答案 0 :(得分:3)
嵌套对象的示例实现
cTask:
Private pMile As cMile
Public Property Get Mile() As cMile
Set Mile = pMile
End Property
Public Property Set Mile(Value As cMile)
Set pMile = Value
End Property
Private Sub Class_Initialize()
Set Me.Mile = New cMile
End Sub
cMile:
Private pStatus As String
Private pNumber As Long
Public Property Get Status() As String
Status = pStatus
End Property
Public Property Let Status(Value As String)
pStatus = Value
End Property
Public Property Get Number() As Long
Number = pNumber
End Property
Public Property Let Number(Value As Long)
pNumber = Value
End Property
常规模块:
Sub Tester()
Dim Task As New cTask
Task.Mile.Status = "Done"
Task.Mile.Number = 11
Debug.Print Task.Mile.Status, Task.Mile.Number
End Sub
原始问题中缺少的是:
curtask.Mile=TIM
目前还不清楚你的意思是什么:它看起来像是cMile类的“默认属性”,但在VBA中并不支持(或者至少不容易)。