Создание свойств второй степени настраиваемых объектов в Excel VBA - PullRequest
0 голосов
/ 05 августа 2020

Итак, это мой самый первый пост здесь ... будьте осторожны:)

Я пытаюсь понять, как создавать свойства 2-й степени для настраиваемых объектов в Excel VBA. Просто для иллюстрации концепции: предположим, я создаю модуль класса clsPlayer и модуль класса clsTeam.

clsPlayer выглядит так:

Public name As String
Public Age As Long
Public Position As String

Sub displayName()
    MsgBox name
End Sub

clsTeam выглядит так:

Private team As Collection

Sub addplayer(p As clsPlayer)
    team.Add p
End Sub
    
Private Sub Class_Initialize()
    Set team = New Collection
End Sub

Public Property Get member(index As Long) As clsPlayer
    member = team(index)
End Property

Итак, clsTeam содержит коллекцию типа clsPlayer, в которой хранятся все игроки команды. Теперь я хотел бы иметь возможность написать в моем основном приложении что-то вроде этого:

Sub main()

Dim t As clsTeam
Dim p As clsPlayer

Set t = New clsTeam
Set p = New clsPlayer

p.name = "Walter"
p.Age = 17
p.Position = "leftfield"

t.addplayer p

debug.print t.member(1).age
t.member(1).displayName
End Sub

К сожалению, приведенный выше код выдает ошибку «объектная переменная не определена» при вызове Get-Property. Почему это так и что я делаю не так?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...