El paso a paso o código que hallarás en este post es la solución más sencilla y válida que encontramos a tu duda o dilema.
Solución:
El método de búsqueda de un rango es más rápido que usar un bucle for para recorrer todas las celdas manualmente.
aquí hay un ejemplo del uso del método de búsqueda en vba
Sub Find_First()
Dim FindString As String
Dim Rng As Range
FindString = InputBox("Enter a Search value")
If Trim(FindString) <> "" Then
With Sheets("Sheet1").Range("A:A") 'searches all of column A
Set Rng = .Find(What:=FindString, _
After:=.Cells(.Cells.Count), _
LookIn:=xlValues, _
LookAt:=xlWhole, _
SearchOrder:=xlByRows, _
SearchDirection:=xlNext, _
MatchCase:=False)
If Not Rng Is Nothing Then
Application.Goto Rng, True 'value found
Else
MsgBox "Nothing found" 'value not found
End If
End With
End If
End Sub
Lo más simple es usar Match
If Not IsError(Application.Match(ValueToSearchFor, RangeToSearchIn, 0)) Then
' String is in range
Si quieres hacer esto sin que VBA, puede usar una combinación de IF
, ISERROR
y MATCH
.
Entonces, si todos los valores están en la columna A, ingrese esta fórmula en la columna B:
=IF(ISERROR(MATCH(12345,A:A,0)),"Not Found","Value found on row " & MATCH(12345,A:A,0))
Esto buscará el valor “12345” (que también puede ser una referencia de celda). Si no se encuentra el valor, MATCH
devuelve “#N/A” y ISERROR
trata de atrapar eso.
Si desea usar VBA, la forma más rápida es usar un bucle FOR:
Sub FindMatchingValue()
Dim i as Integer, intValueToFind as integer
intValueToFind = 12345
For i = 1 to 500 ' Revise the 500 to include all of your values
If Cells(i,1).Value = intValueToFind then
MsgBox("Found value on row " & i)
Exit Sub
End If
Next i
' This MsgBox will only show if the loop completes with no success
MsgBox("Value not found in the range!")
End Sub
Puede usar funciones de hoja de trabajo en VBA, pero son exigentes y, a veces, arrojan errores sin sentido. los FOR
loop es bastante infalible.
Si te gustó nuestro trabajo, eres capaz de dejar una crónica acerca de qué le añadirías a este ensayo.