2015-03-11 2 views
0

У меня есть диапазон двух столбцов, как показано на первом изображении, и форму пользователя с 2-мя столбцами, текстовым полем и командной кнопкой.Возврат соответствующего значения

image1

Есть ли код так, что если я введите значение в текстовом поле, то поиск коды моего диапазона, пока не нашел это значение и возвращает соответствующее значение из другого столбца и все последующие ЗНАЧЕНИЯ ДО В ПЕРВОЙ КОЛОНМЕ ЭТО ПРИХОДИТ К ПЕРВЫМ НЕПРЕРЫВНЫМ КЛЕТКАМ.

Например, если я введу «DDD» в текстовое поле, первый столбец в списке отобразит «DDD», а второй отобразит 444, 555 и 666 соответственно.

Это код, который я использую, но когда я ввожу «AAA» в текстовое поле, .end (xldown) переходит в «DDD», а не «BBB». Есть ли способ решить это?

Благодарим u заранее.

Dim SearchTerm As String 
Dim topCell As Range, BottomCell As Range 

SearchTerm = TextBox1.Text 

With Sheet1.Range("A:A") 
    Set topCell = .Find(SearchTerm, after:=.Cells(Rows.Count, 1), LookIn:=xlValues, lookat:=xlWhole, searchdirection:=xlNext, MatchCase:=False) 

    If topCell Is Nothing Then 
     MsgBox SearchTerm & " not found." 
    Else 
     Set BottomCell = Range(topCell.End(xlDown).Offset(-1, 0), .Cells(Rows.Count, 2).End(xlUp)).Cells(1, 2) 

     With ListBox1 
      .Clear 
      .List = Range(topCell, BottomCell).Value 
     End With 
    End If 
End With 

ответ

0

Используйте приведенный ниже код в качестве ссылки, чтобы установить, какая ячейка является фактически нижней ячейкой для диапазона значений. Дайте мне знать, если вам нужна помощь.

Sub DoTheThang() 
    Dim TopCell As Range 
    Dim BottomCell As Range 
    Dim SearchString As String 
    Dim rngUsed As Range 

    SearchString = "EEE" 

    Set TopCell = Range("A:A").Find(SearchString, Cells(1, 1)) 
    Set BottomCell = TopCell 
    Set rngUsed = Sheet1.UsedRange 

    Do While BottomCell.Offset(1).Value = "" And Not Intersect(BottomCell, rngUsed) Is Nothing 
     Set BottomCell = BottomCell.Offset(1) 
    Loop 

    MsgBox TopCell.Address 
    MsgBox BottomCell.Address 

End Sub 
+0

Perfect .. thank u so much – user3286479

+0

Не проблема. Чтобы помочь будущим пользователям искать похожие ответы, пожалуйста, отметьте вопрос как ответ. – user3561813

+0

Можно ли отсортировать всю таблицу (если не отсортировать) путем сортировки столбца 1? Принимая во внимание, что в этой колонке имеются пустые ячейки – user3286479

Смежные вопросы