Problema con find...

Hola gente, a ver si alguien me puede ayudar, a continuación tengo parte de una función que he ido creando:
For i = 1 To ultimafila
With Worksheets("Hoja3").Cells(i, 1)
ref = .Address
valor = .Value
Worksheets("Hoja1").Activate
With ActiveSheet.Range(rangobusqueda)
Set c = .Find(valor, LookIn:=xlValues)
If c Is Nothing Then
MsgBox "No se encontró el valor: " & valor
Else
valorref = c.Value
...
El asunto es que la uso para buscar valores y compararlos, pero tengo un problema y no sé si es con la función find, o con algún tipo de datos...
En la hoja1, donde se buscan los datos con find, tengo los valores desordenados en la columna donde busco (10,2,1...), y cuando va a buscar el valor 1, en lugar de coger el 1 coge el 10, porque empieza por 1... No sé si me explico, ¿cómo fuerzo a que la búsqueda sea por el valor completo y no por la primera coincidencia que se encuentre?
Saludos.

1 respuesta

Respuesta
1
Cuando se usa el método Find desde VBA conviene poner de forma explícita todos sus parámetros, porque Excel los guarda al hacer cualquier búsqueda, sea esta por código o de forma manual.
Yo usaría la siguiente instrucción:
    Set c = .Find(What:=valor, _
             After:=rangobusqueda.Cells(1, 1), _
             LookIn:=xlValues, _
             LookAt:=xlWhole, _
             SearchOrder:=xlByColumns, _
             SearchDirection:=xlNext, _
             MatchCase:=False, _
             SearchFormat:=False)
Con la que me aseguraría de que siempre que se ejecutara el código los parámetros de Find fueran los que yo quiera y no los de la última búsqueda que se haya hecho.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas