Eliminar letras repetidas en una frase dentro de una celda

Me surgió una dada que la verdad no tengo idea por donde empezar,( ya que no me adentrado al código para manejo de strings) de una palabra ofrase en una celda, ej "pensadores mexicanos", me elimine las letras repetidas y me deje solo 2 de ellas, en esta frase seria la letra "e", quedaría "pensadores mxicanos" y que quede en la misma celda, si hay alguien que me pueda pasar ese código.

1 Respuesta

Respuesta
2

H o  l a:

En tu ejemplo, también tendría que eliminarse la última "s", ya que aparece 3 veces. Entonces el resultado de esta frase:

"pensadores mexicanos"

Debería ser:

"pensadores mxicano"

Te anexo la macro:

Sub EliminarLetrasRepetidas()
'Por.Dante Amor
    Set frase = Range("C6")
    nvafrase = frase.Value
    For i = 1 To Len(nvafrase)
        nvafrase = depurar(nvafrase, Mid(frase.Value, i, 1))
    Next
    frase.Value = nvafrase
End Sub
'
Function depurar(nvafrase, letra)
'Por.Dante Amor
    n = 0
    nueva = nvafrase
    For j = 1 To Len(nvafrase)
        If Mid(nvafrase, j, 1) = letra Then
            n = n + 1
            If n = 3 Then
                nueva = Mid(nvafrase, 1, j - 1) & Mid(nvafrase, j + 1)
                Exit For
            End If
        End If
    Next
    depurar = nueva
End Function

Cambia "C6" por la celda donde vas a poner la frase.

'S aludos. Dante Amor. Recuerda valorar la respuesta. G racias

Excelente Dante, muchas gracias, trabaja super, solo un pequeñísimo favor, me podrías explicar como funciona la parte de la función, no le capto bien su funcionamiento.

Lo que hago en la función es pasarle como parámetro una letra, reviso si esa letra está más de 2 veces, si es así, entonces borro esa letra de la frase.

Eso lo hace por cada letra de la frase.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas