Как сохранить все выбранные данные из списка в массиве в VBA - PullRequest
1 голос
/ 14 июня 2019

Я хотел бы знать, если есть простой способ сохранить все выбранные элементы из ListBox в массив.

Я попытался сделать это с помощью следующего кода, но это не сработалоисключеноFilterTest() ничего мне не верни.

Private Sub ListBox1_Change()

    Dim FilterTest() As Variant
    Dim myMsg As String
    Dim i As Long
    Dim Count As Integer


    Count = 1

    For i = 0 To ListBox1.ListCount - 1
        If ListBox1.Selected(i) Then

            ReDim Preserve FilterTest(Count)
            FilterTest(Count) = ListBox1.List(i)
            Count = Count + 1


        End If
    Next i

End Sub

1 Ответ

2 голосов
/ 14 июня 2019

Вы были близки. Массивы являются базовыми 0 коллекциями (если не указано иное), поэтому начните считать с 0. Вы также можете удалить круглые скобки при объявлении переменной. Затем, переделайте переменную в первый раз, а затем передайте ее и сохраните в следующих итерациях.

Private Sub ListBox1_Change()

    Dim FilterTest As Variant
    Dim myMsg As String
    Dim i As Long
    Dim Count As Integer

    Count = 0

    For i = 0 To ListBox1.ListCount - 1
        If ListBox1.Selected(i) Then
            If Count = 0 Then
                Redim FilterTest(Count)
            Else
                Redim Preserve FilterTest(Count)
            End If
            FilterTest(Count) = ListBox1.List(i)
            Count = Count + 1
        End If
    Next i

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