Come convertire i numeri di colonna di Excel in caratteri alfabetici

Introduzione

Questo articolo illustra come usare la funzione Microsoft Visual Basic, Applications Edition (VBA) in Microsoft Excel per convertire i numeri di colonna nel rispettivo indicatore di carattere alfabetico corrispondente per la stessa colonna.

Ad esempio, il numero di colonna 30 viene convertito nei caratteri alfabetici equivalenti "AD".

Ulteriori informazioni

Microsoft fornisce esempi di programmazione a scopo puramente illustrativo, senza alcuna garanzia di qualsiasi tipo, sia espressa che implicita, ivi incluse, senza limitazioni, le garanzie implicite di commerciabilità o idoneità per uno scopo particolare. In questo articolo si presuppone che l'utente conosca il linguaggio di programmazione in questione e gli strumenti utilizzati per creare ed eseguire il debug delle procedure. Gli esperti Microsoft sono autorizzati a fornire spiegazioni in merito alla funzionalità di una particolare routine, ma in nessun caso a modificare questi esempi per fornire funzionalità aggiuntive o a creare routine atte a soddisfare specifiche esigenze.

La funzione ConvertToLetter funziona usando l'algoritmo seguente:

  1. Si supponga iCol che sia il numero di colonna. Arresta se iCol è minore di 1.
  2. Calcolare il quoziente e il resto in base alla divisione di (iCol - 1) per 26 e archiviare in variabili a e b.
  3. Convertire il valore intero di b nel carattere alfabetico corrispondente (0 => A, 25 => Z) e attivarlo all'inizio della stringa del risultato.
  4. Impostare iCol sul divisore a e sul ciclo.

Ad esempio: il numero di colonna è 30.

  • (Ciclo 1, passaggio 1) Il numero di colonna è almeno 1, procedere.

  • (Ciclo 1, passaggio 2) Il numero di colonna minore di uno è diviso per 26:

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

  • (Ciclo 1, passaggio 3) Virare sulla (b+1) lettera dell'alfabeto:

    3 + 1 = 4, la quarta lettera è "D". Result = "D"

  • (Ciclo 1, passaggio 4) Indietro al passaggio 1 coniCol = a

    iCol = 1

  • (Ciclo 2, passaggio 1) Il numero di colonna è almeno 1, procedere.

  • (Ciclo 2, passaggio 2) Il numero di colonna minore di uno è diviso per 26:

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

  • (Ciclo 2, passaggio 3) Virare sulla b+1 lettera dell'alfabeto:

    0 + 1 = 1, la prima lettera è "A" Result = "AD"

  • (Ciclo 2, passaggio 4) Indietro al passaggio 1 coniCol = a

    iCol = 0

  • (Ciclo 3, passaggio 1) Il numero di colonna è minore di 1, stop.

La funzione VBA seguente è solo un modo per convertire i valori dei numeri di colonna nei caratteri alfabetici equivalenti:

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 Questa funzione converte solo i numeri interi passati al carattere di testo alfanumerico equivalente. Non modifica l'aspetto della colonna o delle intestazioni di riga nel foglio di lavoro fisico.