The okk Цитата: А поконкретней?
В каждом листе больше 1000 строк, а в форме листбокс дольго думает.
Я не понял, почему в каждом листе отображается последний лист, а предыдущие не отображается?????
Код: Private Sub TextBox1_Change()
Dim rng As Range
Dim r As Range
Dim strFilt As String
Dim strFiltLen As Integer
Dim arrFilt As Variant 'динамический массив
Dim ColCnt As Integer
Dim i As Integer, c As Integer
Dim ls As Worksheet
For Each ls In Worksheets 'в каждом листе
ColCnt = ls.UsedRange.Columns.Count 'проходим по всем столбцам
Set rng = ls.UsedRange.Rows 'и по всем строкам
strFilt = TextBox1.Text
strFiltLen = Len(strFilt)
i = 0
ReDim arrFilt(ColCnt - 1, i)
For Each r In rng.Rows
If strFilt = Left(r.Cells(1).Text, strFiltLen) Then
ReDim Preserve arrFilt(ColCnt - 1, i)
For c = 1 To ColCnt
arrFilt(c - 1, i) = r.Cells(1, c).Value
Next
i = i + 1
End If
Next
Next
With ListBox1
.Column() = arrFilt
.ColumnCount = ColCnt
End With
End Sub
Private Sub UserForm_Initialize()
TextBox1_Change
End Sub