Cómo convertir números de columna de Excel en caracteres alfabéticos

Introducción

En este artículo se describe cómo usar la función Microsoft Visual Basic para Aplicaciones (VBA) en Microsoft Excel para convertir los números de columna en su correspondiente designador alfabético de caracteres para la misma columna.

Por ejemplo, el número de columna 30 se convierte en los caracteres alfabéticos equivalentes "AD".

Más información

Microsoft proporciona ejemplos de programación con fines ilustrativos únicamente, sin ninguna garantía, ya sea expresa o implícita. Esto incluye, entre otras, las garantías implícitas de comerciabilidad e idoneidad para un fin determinado. Se considera que está familiarizado con el lenguaje de programación que se muestra y con las herramientas para crear y depurar procedimientos. Los ingenieros de soporte técnico de Microsoft pueden explicarle la funcionalidad de un determinado procedimiento, pero no modificarán estos ejemplos para ofrecer mayor funcionalidad ni crearán procedimientos adaptados a sus necesidades específicas.

La función ConvertToLetter funciona mediante el algoritmo siguiente:

  1. Vamos a iCol ser el número de columna. Detener si iCol es menor que 1.
  2. Calcule el cociente y el resto en la división de (iCol - 1) por 26 y almacene en variables a y b.
  3. Convertir el valor entero de b en el carácter alfabético correspondiente (0 => A, 25 => Z) y colocarlo en la parte delantera de la cadena de resultado.
  4. Establézcalo iCol en el divisor a y el bucle.

Por ejemplo: el número de columna es 30.

  • (Bucle 1, paso 1) El número de columna es al menos 1, continúe.

  • (Bucle 1, paso 2) El número de columna menos uno se divide entre 26:

    29/26 = 1 resto 3. a = 1, b = 3

  • (Bucle 1, paso 3) Tachado en la (b+1) letra del alfabeto:

    3 + 1 = 4, la cuarta letra es "D". Resultado = "D"

  • (Bucle 1, paso 4) Volver al paso 1 coniCol = a

    iCol = 1

  • (Bucle 2, paso 1) El número de columna es al menos 1, continúe.

  • (Bucle 2, paso 2) El número de columna menos uno se divide entre 26:

    0/26 = 0 resto 0. a = 0, b = 0

  • (Bucle 2, paso 3) Tachado en la b+1 letra del alfabeto:

    0 + 1 = 1, la primera letra es "A" Result = "AD"

  • (Bucle 2, paso 4) Volver al paso 1 coniCol = a

    iCol = 0

  • (Bucle 3, paso 1) El número de columna es menor que 1, stop.

La siguiente función de VBA es solo una manera de convertir valores de número de columna en sus caracteres alfabéticos equivalentes:

Function ConvertToLetter(iCol As Long) As String
   Dim a As Long
   Dim b As Long
   a = iCol
   ConvertToLetter = ""
   Do While iCol > 0
      a = Int((iCol - 1) / 26)
      b = (iCol - 1) Mod 26
      ConvertToLetter = Chr(b + 65) & ConvertToLetter
      iCol = a
   Loop
End Function

Nota 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 ni de los encabezados de fila de la hoja de cálculo física.