Variable de objeto no establecida (error 91) Cells.Find()

Mi código en bva es:

Sub Busca_()

Dim Fila_continua As Integer
Dim Valor_uuid As String

Fila_continua = 3
Do

Worksheets(1).Select 'Selecciono la primera hoja
Valor_uuid = Range("A" & Fila_continua).Value ' asigno el valor de la celda "A3" a la variable Valor_uuid.
Valor_uuid = Mid(Valor_uuid, 1, 18) ' tomo solo los primeros 18 digitos del valor de la variable Valor_uuid.

 ++++En esta linea me marca el error+++++

Worksheets(2). Cells.Find(Valor_uuid).Value 'Busco el valor de la variable Valor_uuid en la segunda hoja

 ++++En esta linea me marca el error+++++

If Valor_uuid = "" Then ' si el valor de la variable está vacío o sea que no encuentra el valor salgo del bucle
Exit Do
End If
Worksheets(2). Cells.Find(Valor_uuid).Select ' Si no he salido del bucle, SELECCIONO en la hoja 2 LA CELDA donde sí encuentra el valor.
ActiveCell.Offset(0, -1).Select 'De la celda actual me muevo y selecciono una celda a la izquierda donde contiene el valor que necesito copiar, este nunca es una celda vacía.
ActiveCell.Copy 'Copio la celda activa
Worksheets(1).Range("G" & filavar).PasteSpecial xlPasteAll 'Pego la celda en la hoja 1 en la celda "A3" (que irá en incremento)
Fila_continua = Fila_continua + 1 'Aquí solo agrego una fila mas para ir reccorriendo la siguiente fila A4 y en sucesion

Loop While Valor_uuid = "" 'Si está vacío salgo del bucle

End Sub

¿Alguna idea?, apenas estoy iniciándome en este tema y ya llevo dos días tratando de encontrar la solución :,(

Apreciaría mucho su ayuda. Gracias =)

2 Respuestas

Respuesta
2

Al final lo he hecho funcionar de la siguiente manera:

Sub Busca_()

Dim Fila_continua As Integer
Dim Valor_uuid As String
Dim finduid As Range 'defino un objeto solo para probar :/
Fila_continua = 3
Do

Worksheets(1).Select 'Selecciono la primera hoja
Valor_uuid = Range("A" & Fila_continua).Value ' asigno el valor de la celda "A3" a la variable Valor_uuid.
Valor_uuid = Mid(Valor_uuid, 1, 18) ' tomo solo los primeros 18 digitos del valor de la variable Valor_uuid.
Worksheets(2).Select 'selecciono la hoja 2
Set finduid = Worksheets(2).Cells.Find(Valor_uuid) 'Defino un objeto por desesperación sin comprender por qué. Busco el valor de la variable Valor_uuid en la segunda hoja
If finduid Is Nothing Then ' si el valor de la variable está vacío o sea que no encuentra el valor salgo del bucle
Exit Do
End If
Worksheets(2). Cells.Find(Valor_uuid).Select ' Si no he salido del bucle, SELECCIONO en la hoja 2 LA CELDA donde sí encuentra el valor.
ActiveCell.Offset(0, -1).Select 'De la celda actual me muevo y selecciono una celda a la izquierda donde contiene el valor que necesito copiar, este nunca es una celda vacía.
ActiveCell. Copy 'Copio la celda activa
Worksheets(1).Select 'Selecciono la hoja 1
Range("G" & Fila_continua).Select 'selecciono la celda donde quiero pegar el valor
ActiveCell. PasteSpecial xlPasteAll 'Pego la celda copiada con valores exactos (estoy copiando y pegando fechas y eventualmente estas se intercambian en el mes y dia)
Fila_continua = Fila_continua + 1 'Aquí solo agrego una fila mas para ir reccorriendo la siguiente fila A4 y en sucesion
Loop Until Valor_uuid = "" 'Si está vacío salgo del bucle

End Sub

Respuesta

Hol.a

Aunque el error es medio genérico, en tu caso parece que ocurre porque el método "Find" no encuentra el valor de tu variable "Valor_uuid" ya que por defecto buscará una palabra exactamente igual.

Abraham Valencia

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas