2015-03-04

Invertir cadena en Excel mediante una función en VBA

Title

Problema

Queremos invertir el contenido de celda. Por ejemplo de ABCDE a EDCBA.

Resultado

Aunque podría hacerse mediante fórmulas disponibles en Excel, resulta más sencillo crear una función de usuario. Recurrimos a la fórmula StrReverse que precisamente invierte los caracteres de la cadena suministrada.

Function ReverseString(MyString As String)
   ReverseString = StrReverse(MyString)
End Function
Si la cadena de texto está en A1, en cualquier otra celda tecleamos =ReverseString(A1)

Un efecto secundario es que convierte los números en cadena de texto como se aprecia en el 654321 alineado a la izquierda.

Conservando los números

Para evitar que la función convierta los números a cadena de texto:

Function ReverseString(MyString As String)
   If IsNumeric(MyString) Then
    ReverseString = CDbl(StrReverse(MyString))
    Else
    ReverseString = StrReverse(MyString)
   End If
End Function

Referencias

No hay comentarios:

Publicar un comentario

Nube de datos