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:

  1. Niech iCol będzie numerem kolumny. Zatrzymaj, jeśli iCol wartość jest mniejsza niż 1.
  2. Oblicz iloraz i pozostałą część według podziału (iCol - 1) według 26, a następnie zapisz w zmiennych a i b.
  3. Przekonwertuj wartość całkowitą wartości b na odpowiedni znak alfabetyczny (0 => A, 25 => Z) i przyklej ją z przodu ciągu wynikowego.
  4. Ustaw iCol na dzielnik a 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 ziCol = 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 ziCol = 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.