Macros de Excel

Macro Excel para convertir números a letras

En el siguiente artículo se describe cómo utilizar la función de Microsoft Visual Basic para Aplicaciones (VBA) en Microsoft Excel con la finalidad de convertir los números de alguna columna en el designador de caracteres alfabéticos correspondiente para la misma columna.

Por ejemplo, la columna de Excel número 30 es “AD”. Este artículo contiene ejemplos de funciones de Microsoft Visual Basic para Aplicaciones que puedes usar para convertir un valor numérico en una celda de hoja de cálculo de Microsoft Excel en su equivalente en palabras.

¿Cómo funciona la macro Excel para convertir números a letras?

Microsoft proporciona ejemplos de programación solo para ilustración, macros de Excel, sin garantía expresa ni implícita. Esto incluye, pero no se limita a las garantías implícitas de comerciabilidad o adecuación para un propósito particular.

Este artículo supone que está familiarizado con el lenguaje de programación que se está demostrando y con las herramientas que se utilizan para crear y depurar procedimientos. Los ingenieros de soporte de Microsoft pueden ayudar a explicar la funcionalidad de un procedimiento en particular, pero no modificarán estos ejemplos para proporcionar funcionalidad adicional o crear procedimientos para cumplir con sus requisitos específicos.

La función ConvertToLetter funciona utilizando el siguiente algoritmo:

  • Divide el número de la columna por 27, y luego coloca el entero resultante en la variable “i”.
  • Resta el número de columna de “i” multiplicado por 26, y luego coloca el resultado en la variable “j”.
  • Convierte los valores enteros en sus caracteres alfabéticos correspondientes, “i” y “j” estarán en el rango de 0 a 26, respectivamente.

Por ejemplo: En caso de que el número de columna sea el número 30.

El número de columna se divide por 27: 30/27 = 1.1111, redondeado por la función Int a “1”.

i = 1

Número de columna siguiente – (i * 26) = 30 – (1 * 26) = 30 – 26 = 4.

j = 4

Convierte los valores a caracteres alfabéticos por separado de tal manera:

i = 1 = “A”

j = 4 = “D”

Combinados, forman el designador de columna “AD”.

El siguiente código de VBA es solo una forma de convertir los valores de número de columna en sus caracteres alfabéticos equivalentes:

Function ConvertToLetter(iCol As Integer) As String

Dim iAlpha As Integer

Dim iRemainder As Integer

iAlpha = Int(iCol / 27)

iRemainder = iCol – (iAlpha * 26)

If iAlpha > 0 Then

ConvertToLetter = Chr(iAlpha + 64)

End If

If iRemainder > 0 Then

ConvertToLetter = ConvertToLetter & Chr(iRemainder + 64)

End If

End Function

Debes tener claro que esta función solo convierte los enteros que se le pasan en su carácter de texto alfanumérico equivalente. No cambia la apariencia de la columna o los encabezados de las filas en la hoja de trabajo física.