Jak převést čísla sloupců aplikace Excel na abecední znaky

Úvod

Tento článek popisuje, jak pomocí funkce Microsoft Visual Basic for Applications (VBA) v Microsoft Excelu převést čísla sloupců na jejich odpovídající abecední znak pro stejný sloupec.

Například sloupec s číslem 30 se převede na ekvivalentní abecední znaky "AD".

Další informace

Společnost Microsoft poskytuje ukázky programování pouze pro ilustraci, bez žádné záruky výslovně uvedené nebo odvozené, včetně, bez omezení, odvozených záruk vztahujících se k obchodovatelnosti nebo vhodnosti pro určitý účel. Tento článek předpokládá, že uživatel je obeznámen s programovacím jazykem, který je předmětem ukázky, a s nástroji použitými pro vytvoření a ladění skriptu. Pracovníci technické podpory společnosti Microsoft mohou vysvětlit funkce určitého postupu, nemohou však následující příklady rozšířit o další funkce nebo konstrukce podle konkrétních požadavků uživatele.

Funkce ConvertToLetter funguje pomocí následujícího algoritmu:

  1. Nechť iCol je číslo sloupce. Zastavte, pokud iCol je menší než 1.
  2. Vypočítejte podíl a zbytek při dělení hodnoty (iCol - 1) o 26 a uložte je do proměnných a a b.
  3. Převeďte celočíselnou hodnotu na b odpovídající abecední znak (0 => A, 25 => Z) a vložte ji na přední část výsledného řetězce.
  4. Nastavte iCol na dělitel a a smyčku.

Příklad: Číslo sloupce je 30.

  • (Smyčka 1, krok 1) Číslo sloupce je alespoň 1, pokračujte.

  • (Smyčka 1, krok 2) Sloupec s číslem menší než jedna se vydělí číslem 26:

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

  • (Smyčka 1, krok 3) Přichytávku na (b+1) písmeno abecedy:

    3 + 1 = 4, čtvrté písmeno je "D". Result = "D"

  • (Smyčka 1, krok 4) Zpět ke kroku 1 siCol = a

    iCol = 1

  • (Smyčka 2, krok 1) Číslo sloupce je alespoň 1, pokračujte.

  • (Smyčka 2, krok 2) Sloupec s číslem menší než jedna se vydělí číslem 26:

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

  • (Smyčka 2, krok 3) Přichytávku na b+1 písmeno abecedy:

    0 + 1 = 1, první písmeno je "A" Výsledek = "AD"

  • (Smyčka 2, krok 4) Zpět ke kroku 1 siCol = a

    iCol = 0

  • (Smyčka 3, krok 1) Číslo sloupce je menší než 1, zastavte.

Následující funkce jazyka VBA je jen jedním ze způsobů, jak převést hodnoty čísel sloupců na odpovídající abecední znaky:

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

Poznámka Tato funkce převede pouze celá čísla, která jsou jí předána, na ekvivalentní alfanumerický textový znak. Nezmění vzhled sloupce ani záhlaví řádků na fyzickém listu.