Como converter números de coluna do Excel em carateres alfabéticos

Introdução

Este artigo aborda como utilizar a função Microsoft Visual Basic for Applications (VBA) no Microsoft Excel para converter números de coluna no design de caráter alfabético correspondente para a mesma coluna.

Por exemplo, o número da coluna 30 é convertido nos carateres alfabéticos equivalentes "AD".

Mais Informações

A Microsoft fornece exemplos de programação apenas a título informativo, sem qualquer garantia expressa ou implícita, incluindo, sem limitações, as garantias implícitas de comercialização e/ou adequação a um fim específico. Este artigo pressupõe que o utilizador está familiarizado com a linguagem de programação demonstrada e as ferramentas utilizadas para criar e depurar procedimentos. Os técnicos de suporte da Microsoft podem ajudar a explicar a funcionalidade de um determinado procedimento, mas não modificarão estes exemplos para proporcionarem funcionalidades adicionais nem criarão procedimentos adaptados às suas necessidades específicas.

A função ConvertToLetter funciona com o seguinte algoritmo:

  1. Vamos iCol ser o número da coluna. Pare se iCol for inferior a 1.
  2. Calcule o quociente e o restante na divisão de (iCol - 1) por 26 e armazene em variáveis a e b.
  3. Converta o valor inteiro de b no caráter alfabético correspondente (0 => A, 25 => Z) e ative-o na parte frontal da cadeia de resultados.
  4. Defina iCol como divisor a e ciclo.

Por exemplo: o número da coluna é 30.

  • (Ciclo 1, passo 1) O número da coluna é, pelo menos, 1, continue.

  • (Ciclo 1, passo 2) O número da coluna menos um é dividido por 26:

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

  • (Ciclo 1, passo 3) A tack na (b+1) letra do alfabeto:

    3 + 1 = 4, a quarta letra é "D". Resultado = "D"

  • (Ciclo 1, passo 4) Voltar para o passo 1 comiCol = a

    iCol = 1

  • (Ciclo 2, passo 1) O número da coluna é, pelo menos, 1, continue.

  • (Ciclo 2, passo 2) O número da coluna menos um é dividido por 26:

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

  • (Ciclo 2, passo 3) A tack na b+1 letra do alfabeto:

    0 + 1 = 1, a primeira letra é "A" Resultado = "AD"

  • (Ciclo 2, passo 4) Voltar para o passo 1 comiCol = a

    iCol = 0

  • (Ciclo 3, passo 1) O número da coluna é inferior a 1, pare.

A seguinte função VBA é apenas uma forma de converter valores de número de coluna nos respetivos carateres 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 função só converte números inteiros que lhe são transmitidos para o caráter de texto alfanumérico equivalente. Não altera o aspeto da coluna nem dos cabeçalhos de linha na folha de cálculo física.