#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