Microsoft Excel

  • doc
  • 14.05.2020
Публикация на сайте для учителей

Публикация педагогических разработок

Бесплатное участие. Свидетельство автора сразу.
Мгновенные 10 документов в портфолио.

Иконка файла материала 89. Microsoft Excel.doc

Поиск значений в базе данных по первым буквам при вводе на листе (как в 1С)

Предположим, на листе есть большая база данных. Поиск по базе можно организовать с помощью поля (текстбокс) для ввода интересующего значения и обновляющегося по мере ввода списка (листбокс) подходящих значений:

view plainprint?

1.        Option Compare Text  

2.          

3.        Private Sub TextBox1_Change()  

4.        Dim x, i As Long, txt As String, lt As Long, s As String  

5.        txt = TextBox1.Text: lt = Len(TextBox1.Text)  

6.        If lt = 0 Then Exit Sub  

7.          

8.        x = Range("A1", Cells(Rows.Count, 1).End(xlUp)).Value  

9.        For i = 1 To UBound(x, 1) ' поиск по первым буквам  

10.      If txt = Mid(x(i, 1), 1, lt) Then s = s & "~" & x(i, 1)  

11.     Next i  

12.     'For i = 1 To UBound(x, 1) 'поиск по любому вхождению  

13.     ' If InStr(x(i, 1), txt) Then s = s & "~" & x(i, 1)  

14.     'Next i  

15.     ListBox1.List = Split(Mid(s, 2), "~")  

16.     End Sub  

view plainprint?

1.        Private Sub ListBox1_Click()  

2.        If ListBox1.ListIndex = -1 Then Exit Sub  

3.        Columns(1).Find(ListBox1, lookat:=xlWhole).Select  

4.        End Sub  

Можно также использовать форму (см. файл-пример)

 


Скачано с www.znanio.ru