2017-05-02 25 views
0

我想通過一張數據搜索x例如。我想過使用Match函數,但匹配函數只查找一列。 x可以在該表中的任何位置,那麼可以返回可以搜索所有數據的行號的任何函數或任何東西?如何搜索數據並返回行號?

我在excel中添加了代碼,現在出現下標超出範圍的錯誤。我真的不知道,如果我做了正確的

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

是,谷歌'Find',或'Range.Find'你 ''」得到充足的結果。 –

+0

如果你有一個範圍,你總是可以找到行號: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非常奇怪我使用Sheet2.Range(「B:G」)而不是With Sheets(「Sheet2」)。Range(「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 

編輯:對於可視化