Jak konwertować numery kolumn programu Excel na znaki alfabetyczne
Wprowadzenie
W tym artykule omówiono sposób używania funkcji Microsoft Visual Basic for Applications (VBA) w programie Microsoft Excel do konwertowania numerów kolumn na odpowiadający im alfabetyczny projektator znaków dla tej samej kolumny.
Na przykład numer kolumny 30 jest konwertowany na równoważne znaki alfabetyczne "AD".
Więcej informacji
Firma Microsoft podaje przykłady programowania tylko dla celów ilustracyjnych, nie udzielając żadnej rękojmi, wyrażonej wprost ani dorozumianej, w tym także, ale nie tylko, dorozumianej rękojmi co do przydatności handlowej lub do określonych celów. W tym artykule zakłada się, że czytelnik zna demonstrowany język programowania oraz narzędzia używane do tworzenia i debugowania procedur. Wykwalifikowani pracownicy pomocy technicznej firmy Microsoft mogą pomóc w wyjaśnieniu, jak działa określona procedura, ale nie będą modyfikować tych przykładów ani dodawać żadnych funkcji i konstruować nowych procedur w celu dostosowania ich do określonych potrzeb użytkownika.
Funkcja ConvertToLetter działa przy użyciu następującego algorytmu:
- Niech
iCol
będzie numerem kolumny. Zatrzymaj, jeśliiCol
wartość jest mniejsza niż 1. - Oblicz iloraz i pozostałą część według podziału
(iCol - 1)
według 26, a następnie zapisz w zmiennycha
ib
. - Przekonwertuj wartość całkowitą wartości
b
na odpowiedni znak alfabetyczny (0 => A, 25 => Z) i przyklej ją z przodu ciągu wynikowego. - Ustaw
iCol
na dzielnika
i pętlę.
Na przykład: numer kolumny to 30.
(Pętla 1, krok 1) Numer kolumny to co najmniej 1, kontynuuj.
(Pętla 1, krok 2) Kolumna numer mniej jeden jest podzielona przez 26:
29 / 26 = 1 reszta 3.
a = 1, b = 3
(Pętla 1, krok 3) Przyklej literę
(b+1)
alfabetu:3 + 1 = 4, czwarta litera to "D". Wynik = "D"
(Pętla 1, krok 4) Wstecz do kroku 1 z
iCol = a
iCol = 1
(Pętla 2, krok 1) Numer kolumny to co najmniej 1, kontynuuj.
(Pętla 2, krok 2) Kolumna numer mniej jeden jest podzielona przez 26:
0 / 26 = 0 reszta 0.
a = 0, b = 0
(Pętla 2, krok 3) Przyklej literę
b+1
alfabetu:0 + 1 = 1, pierwsza litera to "A" Result = "AD"
(Pętla 2, krok 4) Wstecz do kroku 1 z
iCol = a
iCol = 0
(Pętla 3, krok 1) Numer kolumny jest mniejszy niż 1, zatrzymaj.
Następująca funkcja VBA to tylko jeden ze sposobów konwertowania wartości liczbowych kolumn na ich równoważne znaki alfabetyczne:
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
Uwaga Ta funkcja konwertuje tylko liczby całkowite, które są do niej przekazywane, na ich odpowiednik alfanumerycznego znaku tekstowego. Nie zmienia wyglądu kolumny ani nagłówków wierszy w arkuszu fizycznym.
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla