2017-05-02 9 views
0

私は、たとえばデータシートを通してxを検索しようとしています。私はMatch関数を使うことを考えましたが、match関数は1つのカラムだけを参照します。 xはそのシート内のどこにでも置くことができるので、すべてのデータを検索できる行番号を返す関数や何かがありますか?データを検索して行番号を返す方法は?

私はExcelでコードを追加しましたが、今度は下付き文字の範囲外のエラーが表示されています。私は私のfind関数をした場合、正しく

Dim r As range 
With Sheets("Sheet2").Range("A:DZU") 
    Set r = .Find(What:="U1") 
End With 
+0

はい、GoogleのFindまたはRange.Findを使用すると十分な結果が得られます。 –

+0

Rangeがある場合は、行番号を常に見つけることができます。Range.Row –

+0

@ShaiRado、Excelシート自体にfind関数を使用しましたが、見つけられませんでした。しかし、私がfind&selectを使うと、excelがそれを見つけることができました。理由を理解できない... –

答えて

1

ためprintを追加見てFind機能を使用して以下のコードを試してみてください「A:DZU」欄の"U1"については、

Option Explicit 

Sub FindX() 

Dim FndRng As Range 

With Sheets("Sheet2").Range("A:DZU") 
    Set FndRng = .Find(What:="U1", LookIn:=xlValues, LookAt:=xlWhole)   
    If Not FndRng Is Nothing Then ' <-- Find was successful 
     MsgBox "Found `U1` at row " & FndRng.Row 
    Else 
     MsgBox "Unable to find `U1`" 
    End If 
End With 

End Sub 
+0

Excelは非常に奇妙私はシート( "シート2")の代わりにSheet2.Range( "B:G")で使用されています。範囲( "A:DZU")とそれは動作しますが、自分のコードとあなたのコードを組み合わせます。ご協力いただきありがとうございます ! –

+0

@RachelChiaようこそ –

0

これは役に立ち

Sub GetRowNum() 
    Dim myValue As String 
    myValue = "x" 

    Dim wb As Workbook 
    Dim ws As Worksheet 
    Set wb = ActiveWorkbook 
    Set ws = ActiveSheet 

    Debug.Print ws.Range("A:Z").Find(myValue).Row 

End Sub 

編集かもしれない本当にわからない:可視化

関連する問題