Как хранить объекты в ListBox vba и получать их, когда мы нажимаем на них? - PullRequest
0 голосов
/ 19 июня 2019

Я создал метод, который принимает глобальный массив объектов arrayOReservists, который представляет людей, и отображает их объекты в ListBox.

        ' Fill the ListBox results with the names and surnames of the staff
        ListBoxResults.AddItem (arrayOReservists(i).Surname & " " & arrayOReservists(i).Name)
        ' we resize the table
        i = i + 1

Другой метод, ListBoxResults_DblClick, отвечает, когда я дважды щелкаю по одной из строк в ListBox. Он показывает пользовательскую форму, на которую я хотел бы отправить объект, на который я нажал. Однако я не знаю, как получить доступ к этому объекту. У меня сложилось впечатление, что данные, передаваемые в ListBox с помощью AddItem, преобразуются в текст.

Private Sub ListBoxResults_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
    Dim Msg As String
    Dim i As Integer
    Dim newInstanceOfMe As Object

    ' We look for the name and surname of the reserviser we clicked on.
    For i = 0 To ListBoxResults.ListCount - 1
        If ListBoxResults.Selected(i) Then
            ReservistName = ListBoxResults.List(i)
        End If
    Next i

    ' Consider the case in which you click on the TextBox Results while it is empty
    If False Then
        If ReservistName <> "" Then
            Set newInstanceOfMe = UserForms.Add(Me.Name)          
            newInstanceOfMe.Caption = ReservistName
            newInstanceOfMe.Show
            Unload newInstanceOfMe
            Set newInstanceOfMe = Nothing
        End If
    End If
    ' Pass the name, first name to ReservistUserForm and in the Load that filters the list of these fields by obtaining the oReservist object.
    ' Once you have the information of that user, the following will be to map the information to the corresponding textBox.
    ReservistFormUserForm.Caption = ReservistName
    ReservistFormUserForm.Show

End Sub

На самом деле, когда я показываю MsgBox (ListBoxResults.List (i)), у меня есть только имя и фамилия, а не объект.

Следовательно, как хранить объекты в ListBox vba и получать их, когда мы щелкаем по ним? Это позволит мне, например, поместить их в глобальную переменную, к которой у меня будет доступ в пользовательская форма.

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