Я пытаюсь найти решение проблемы заполнения списка. Проблема в том, что данные слишком велики (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
Как выполнить этот тестовый способ для этих больших данных?