показать данные более 10 столбцов в списке - PullRequest
0 голосов
/ 13 апреля 2020

Мне нужна помощь по этой ошибке. У меня есть пользовательская форма, содержащая 20 текстовых полей и один список, в котором код должен отображать данные в списке после заполнения 20 текстовых полей. Я так много искал в inte rnet, где нашел, что этот код работает для кого-то, но для меня это не так. не знаю, где именно ошибка, которую я ценю, если кто-нибудь поможет мне

Private Sub CommandButton1_Click()
Dim arr1 As Variant
arr1 = Array(Me.TextBox1, Me.TextBox2, Me.TextBox3, Me.TextBox4, Me.TextBox5, Me.TextBox6, 
Me.TextBox7, Me.TextBox8, Me.TextBox9, Me.TextBox10, Me.TextBox11, Me.TextBox12, Me.TextBox13, 
Me.TextBox14, Me.TextBox15, Me.TextBox16, Me.TextBox17, Me.TextBox18, Me.TextBox19, Me.TextBox20)
With ListBox1
.AddItem
For i = LBound(arr1) To UBound(arr1)
.List(.ListCount - 1, i) = arr1(i).Value
Next i
End With

End Sub

[https://i.stack.imgur.com/Hl4al.jpg] [1]

[https://i.stack.imgur.com/7ZBPi.jpg] [2]

1 Ответ

0 голосов
/ 13 апреля 2020

Количество столбцов, которые можно добавить с помощью метода AddItem, ограничено 10 столбцами. Вместо этого попробуйте следующее ...

Option Explicit

Private Sub CommandButton1_Click()

    With Me.ListBox1
        If .ListCount = 0 Then
            GetFirstRow
        Else
            GetNextRow
        End If
    End With

End Sub

Private Sub GetFirstRow()

    Dim arr() As Variant
    Dim i As Long

    With Me.ListBox1
        ReDim arr(1 To 1, 1 To .ColumnCount)
    End With

    For i = LBound(arr, 2) To UBound(arr, 2)
        arr(1, i) = Me.Controls("TextBox" & i).Value
    Next i

    Me.ListBox1.list = arr()

End Sub

Private Sub GetNextRow()

    Dim arr() As Variant
    Dim i As Long

    With Me.ListBox1
        arr() = Application.Transpose(.list())
        ReDim Preserve arr(1 To UBound(arr, 1), 1 To UBound(arr, 2) + 1)
        For i = LBound(arr, 1) To UBound(arr, 1)
            arr(i, UBound(arr, 2)) = Me.Controls("TextBox" & i).Value
        Next i
    End With

    Me.ListBox1.list = Application.Transpose(arr())

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