2016-04-04 14 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 

ご満足いただけると思いますか?

関連する問題