Здравствуйте, подскажите, пожалуйста, при написании фамилии в поиске возникает ошибка. Например, нажимаю букву "к" или "л", хотя на букву "п" нормально реагирует.
Здравствуйте, подскажите, пожалуйста, при написании фамилии в поиске возникает ошибка. Например, нажимаю букву "к" или "л", хотя на букву "п" нормально реагирует.kalendarka
Private Sub TextBox2_Change() Dim z&, i&, L&, isk$, j& Dim flag As Boolean, Stroka2$, Stroka1$
If ListBox1.ListIndex > -1 Then Exit Sub '?? If Len(TextBox2.Value) = 0 Then ListBox1.Clear Exit Sub End If ListBox1.Clear L = Len(TextBox2.Value)
For i = Cells(Rows.Count, 4).End(xlUp).Row To 2 Step -1 If UCase(Mid(Cells(i, 4), 1, L)) = UCase(TextBox2.Value) Then For j = 0 To ListBox1.ListCount - 1 Stroka2 = Trim(ListBox1.List(j, 1) + ListBox1.List(j, 2)) Stroka1 = Trim(Cells(i, 4) & Cells(i, 10)) If Stroka1 = Stroka2 Then flag = True Next j If flag = False Then ListBox1.AddItem i ListBox1.List(z, 1) = Cells(i, 4) ListBox1.List(z, 2) = Cells(i, 10) z = z + 1 End If End If Next i If z = 1 Then Cells(ListBox1.List(0, 0), 3).Select End Sub
[/vba]
kalendarka, привет попробуйте так [vba]
Код
Private Sub TextBox2_Change() Dim z&, i&, L&, isk$, j& Dim flag As Boolean, Stroka2$, Stroka1$
If ListBox1.ListIndex > -1 Then Exit Sub '?? If Len(TextBox2.Value) = 0 Then ListBox1.Clear Exit Sub End If ListBox1.Clear L = Len(TextBox2.Value)
For i = Cells(Rows.Count, 4).End(xlUp).Row To 2 Step -1 If UCase(Mid(Cells(i, 4), 1, L)) = UCase(TextBox2.Value) Then For j = 0 To ListBox1.ListCount - 1 Stroka2 = Trim(ListBox1.List(j, 1) + ListBox1.List(j, 2)) Stroka1 = Trim(Cells(i, 4) & Cells(i, 10)) If Stroka1 = Stroka2 Then flag = True Next j If flag = False Then ListBox1.AddItem i ListBox1.List(z, 1) = Cells(i, 4) ListBox1.List(z, 2) = Cells(i, 10) z = z + 1 End If End If Next i If z = 1 Then Cells(ListBox1.List(0, 0), 3).Select End Sub