2016-04-04 4 views
0

Мне нужна функция или что-то, чтобы вернуть мне диапазон, в котором было определено указанное значение.Найти диапазон по значению Excel-VBA

Я думаю о переходе через указанный диапазон проверки, если значение в каждой ячейке равно значению, указанному мной и построению диапазона. Есть ли более элегантный метод?

ответ

0

Вот функция, которую я построил. Он возвращает диапазон объединений, в котором была найдена необходимая стоимость:

Private Function FindRange(what As String, lookin As Range) As Range 

    Dim cell As Range 

    On Error GoTo errhandler 

    For Each cell In lookin.Cells 
     If UCase(cell.Value) = UCase(what) Then 

      If findrange Is Nothing Then 
       Set findrange = cell 
      Else 
       Set findrange = Application.Union(findrange, cell) 
      End If 

     End If 
    Next cell 

    Exit Function 

errhandler: 
    findrange = CVErr(xlErrNA) 

End Function 
0

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

=findvalueandrange(searchstring,selectyourrange) 

Public Function findvalueandrange(findingtext As String, r As Range) As String 
    Dim cell As Range 
    For Each cell In r.Cells 
     If LCase(cell.Value) = LCase(findingtext) Then 
      If findvalueandrange = "" Then 
       findvalueandrange = cell.Address & ":" & cell.Value 
      Else 
       findvalueandrange = findvalueandrange & "|" & cell.Address & ":" & cell.Value 
      End If 
     End If 
    Next cell 
End Function 

Надеюсь, вас устраивает?

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