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

Я пытаюсь найти решение проблемы заполнения списка. Проблема в том, что данные слишком велики (1 миллион строк и около 20 столбцов). Этот код прекрасно работает для небольших объемов данных, но для больших данных для процесса поиска требуется около 25 секунд

Private Sub TextBox14_AfterUpdate()
Dim a, b(), temp, ws As Worksheet, i As Long, n As Long, c As Long

Set ws = ThisWorkbook.Worksheets("Data")
Me.ListBox1.Clear
temp = Me.TextBox14.Value
c = ComboBox1.ListIndex
If (c = -1) + (temp = "") Then MsgBox "Specify Search Column First And Make Sure TextBox Is Not Empty", vbExclamation: Exit Sub

a = ws.Range("A1:S" & ws.Cells(Rows.Count, 1).End(xlUp).Row).Value
ReDim b(1 To 100000)
b(1) = Application.Index(a, 1, 0)

For i = 2 To UBound(a, 1)
    If CStr(a(i, c + 1)) Like "*" & temp & "*" Then
        n = n + 1
        b(n) = Application.Index(a, i, 0)
    End If
Next i

If n > 0 Then
    ReDim Preserve b(1 To n)
    If n = 1 Then
        Me.ListBox1.Column = Application.Index(b, 0, 0)
    Else
        Me.ListBox1.List = Application.Index(b, 0, 0)
    End If
End If

End Sub

Как выполнить этот тестовый способ для этих больших данных?

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