сканирование по столбцу Excel для поиска идентификатора

#vba #excel

#vba #excel

Вопрос:

Я получаю идентификатор из списка, а затем просматриваю лист Excel (ID), чтобы узнать, существует ли этот идентификатор или нет. Если этого не произойдет, я должен добавить его в конце. Если это произойдет, я должен выяснить, в какой строке присутствует этот идентификатор.

Я зацикливаюсь таким образом

  count = 1
 count1=1

 While (Worksheets("ID").Cells(Count, 1) <> "")
     If StrComp(Worksheets("ID").Cells(Count, 2), list1.Value, vbTextCompare = 1) Then
         count1=count
 count = count  1
 

Комментарии:

1. Вы ищете один или несколько результатов? И в конкретном столбце «ID»?

2. Поля в первом столбце идентификатора листа должны совпадать с идентификатором, указанным в списке. Единичные результаты. Идентификаторы уникальны.

3. Находится ли ваш список в пользовательской форме?

4. Его на листе Excel в качестве элемента управления ActiveX

5. С небольшим форматированием (thx Slaks) и двумя незначительными уточнениями на вопрос было легко ответить RBarryYoung.

Ответ №1:

Вы можете попробовать использовать FInd, чтобы просмотреть столбец B для одного совпадения без учета регистра во всей строке, т. Е.

Обновление: если вы запускали поиск непосредственно из активного элемента управления X, то:

     Private Sub List1_Click()
 Dim rng1 As Range
    Set rng1 = Sheets("ID").Columns("B").Find(List1.Value, , xlValues, xlWhole, , False)
    If Not rng1 Is Nothing Then
        MsgBox List1.Value amp; " found at " amp; rng1.Row
    Else
        MsgBox List1.Value amp; " not found"
    End If
End Sub