Otra opción es abrir un recordset con los datos de la columna y hacer un recorrido por el mismo.
p.ej. Queremos buscar en la columna "B" (desde la fila 1 hasta la 20) de la hoja (Hoja1) en el Libro2.xls que se encuentra en el mismo directorio de la aplicación.
El dato a buscar, lo hemos escrito en un TextBox (Text1)
Código:
Dim rs As ADODB.Recordset
Set rs = New ADODB.Recordset
With rs
.ActiveConnection = "Provider=Microsoft.jet.OLEDB.4.0;Data Source=" & _
App.Path & "\Libro2.xls;Extended Properties=Excel 8.0;"
.CursorType = adOpenStatic
.CursorLocation = adUseClient
.Open "Select * From [Hoja1$B1:B20]"
End With
Do Until rs.EOF
If rs(0) = Text1.Text Then
MsgBox "Encontrado en la fila " & rs.AbsolutePosition + 1
' sumamos 1 a la propiedad AbsolutePosition porque el recordset
' considera la primera fila como nombre de campo
Exit Do
End If
rs.MoveNext
Loop
If rs.EOF Then MsgBox "No se encontró"
Set rs = Nothing
Para que lo anterior funcione, tienes que marcar las referencias a ADO y la librería de Excel (la versión que tengas)