Como puedo integrar ciclo Do While a código de extracción de datos en VBA

Me ayudaron en este foro a plasmar más la idea que tenia con un código para extraer numero con lada o y funciono, es este:
Sub extra_Numero()
celda = Range("B2").Value
n = InStr(1, celda, "744")
tel = Mid(celda, n, 10)
Range("C2").Value = tel
End Sub

Lo que quisiera ahora es poder agregar la función Do While para que corra B1, B2, B3, B4.. Etc y al mismo tiempo poder usar "Elseif" para agregar más ladas y me extraiga más números y diferentes a la lada que tengo ahí que es "744", ¿cómo la puedo implementar?

1 respuesta

Respuesta
2

Ejecuta la siguiente macro, va a leer todos los registros que tengas en la columna B y en la columna C te pondrá el teléfono.

Agrega las lada en esta línea:

Lada = Array("744", "595", "22")

La macro revisará las LADA que pongas en la línea, si en el registro encuentra una de ellas entonces te pondrá el número en la columna C

Sub Extraer_Numero()
'Por Dante Amor
    'Extraer teléfonos con LADA
    '
    lada = Array("744", "595", "22")
    '
    For i = 2 To Range("B" & Rows.Count).End(xlUp).Row
        celda = Range("B" & i).Value
        For j = LBound(lada) To UBound(lada)
            n = InStr(1, celda, lada(j))
            If n > 0 Then
                tel = Mid(celda, n, 10)
                Range("C" & i).Value = tel
                Exit For
            End If
        Next
    Next
End Sub


[Si te ayudó la información, no olvides valorar la respuesta.

¡Gracias! Pero me dale error en valor i 

Me arroja el depurador, a que se debe?

¿Qué dice el mensaje y en cuál línea de la macro se detiene?

¿Cambiaste algo en la macro?

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas