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:
- Nechť
iCol
je číslo sloupce. Zastavte, pokudiCol
je menší než 1. - Vypočítejte podíl a zbytek při dělení hodnoty
(iCol - 1)
o 26 a uložte je do proměnnýcha
ab
. - 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. - Nastavte
iCol
na dělitela
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 s
iCol = 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 s
iCol = 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.
Váš názor
https://aka.ms/ContentUserFeedback.
Připravujeme: V průběhu roku 2024 budeme postupně vyřazovat problémy z GitHub coby mechanismus zpětné vazby pro obsah a nahrazovat ho novým systémem zpětné vazby. Další informace naleznete v tématu:Odeslat a zobrazit názory pro