Buscarv en macro

Hola buen dia.
Espero que me puedan ayudar con una macro la verdad apenas me estoy
iniciando en esta área.
Tengo una macro para extraer una letra (k) y sus números consecutivos de una cadena alfanumérica de la columna F:F y ponerlos en G:G

mi macro es:

Sub busque()
For i = 1 To Range("F" & Rows.Count).End(xlUp).Row
posk = InStr(1, Cells(i, "F"), "K")
If posk > 0 Then
kynum = Mid(Cells(i, "F"), posk, 1)
posk = posk + 1
For j = posk To Len(Cells(i, "F"))
If IsNumeric(Mid(Cells(i,"F"), j, 1)) Then
kynum = kynum + Mid(Cells(i, "F"), j, 1)
Else
Exit For
End If
Next
Cells(i, "G") = kynum
Else
Cells(i, "G") = "SIN DATOS"
End If
Next
End Sub


Mi cuestión es:
Quiero modificar esta macro para que en lugar de arrojarme esta letra K y sus números consecutivos, me haga un buscarv de esos caracteres.


Mis datos a buscar están en la hoja 2 en A:A y quiero que me dé los que están en la columna D:D, y arroje el resultado en la columna G:Gde la hoja 1

Espero me puedas ayudar, y agradezco de antemano

1 Respuesta

Respuesta
1

Te preparo la nueva macro y te la envío

Saludos. Dam

Te anexo la macro

Sub busk()
'Busca la letra K
'Por.Dam
Set h1 = Sheets("Hoja1")
Set h2 = Sheets("Hoja2")
h1.Select
For i = 1 To Range("F" & Rows.Count).End(xlUp).Row
    posk = InStr(1, Cells(i, "F"), "K")
    If posk > 0 Then
        kynum = Mid(Cells(i, "F"), posk, 1)
        posk = posk + 1
        For j = posk To Len(Cells(i, "F"))
            If IsNumeric(Mid(Cells(i, "F"), j, 1)) Then
                kynum = kynum + Mid(Cells(i, "F"), j, 1)
            End If
        Next
        res = Application.VLookup(kynum, _
        h2.Range("A:D"), 4, False)
        If IsError(res) = True Then
            ' No lo encontró
            h1.Cells(i, "G") = "NO ENCONTRADO"
        Else
            h1.Cells(i, "G") = res
        End If
    Else
        Cells(i, "G") = "SIN DATOS"
    End If
Next
End Sub

Saludos.Dam
Si es lo que necesitas.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas