2016-04-04 18 views
0

Belirtilen değerin bulunduğu bir aralığı döndürmek için bir işleve veya bir şeye ihtiyacım var.Değeri, aralığa göre bulun Excel-VBA

Belirtilen aralıkta, her hücredeki değerin belirtilen I değerine ve aralık oluşturmaya eşit olup olmadığını kontrol etmeyi düşünüyorum. Daha şık bir yöntem var mı?

cevap

0

Oluşturduğum bir işlev. Gerekli değerin bulunduğu bir sendika aralığı döndürür: aşağıdaki kodu deneyin:

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

. Sonuçları formülü kullanarak hücrelere alabilirsiniz.

=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 

Memnun oldunuz mu?

İlgili konular