Jak przekonwertować numery kolumn programu Excel na znaki alfabetyczne

Uwaga

Nazwa usługi Office 365 ProPlus została zmieniona na Aplikacje usługi Microsoft 365 dla przedsiębiorstw. Aby uzyskać więcej informacji na temat tej zmiany, przeczytaj ten wpis w blogu.

Wprowadzenie

W tym artykule omówiono sposób używania funkcji języka Microsoft Visual Basic for Applications (VBA) w programie Microsoft Excel w celu przekonwertowania numerów kolumn na odpowiadające im typy znaków alfabetycznych 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 to numer kolumny. iColZatrzymaj, jeśli jest mniejsza niż 1.
  2. Oblicz iloraz i resztę z dzielenia (iCol - 1) przez 26 i przechowuj w zmiennych a i b .
  3. Przekonwertuj wartość całkowitą znaku na odpowiadający mu znak alfabetyczny b (0 => A, 25 => Z) i zasuń ją przed ciągiem wyników.
  4. Ustaw iCol dzielnik i a pętlę.

Na przykład: Numer kolumny to 30.

  • (Pętla 1, krok 1) Numer kolumny wynosi co najmniej 1, kontynuuj.

  • (Pętla 1, krok 2) Liczba kolumny mniejsza niż jedna jest dzielona przez 26:

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

  • (Pętla 1, krok 3) Litera (b+1) alfabetu:

    3 + 1 = 4, czwarta litera to "D". Wynik = "D"

  • (Pętla 1, krok 4) Powrót do kroku 1 za pomocą iCol = a

    iCol = 1

  • (Pętla 2, krok 1) Numer kolumny wynosi co najmniej 1, kontynuuj.

  • (Pętla 2, krok 2) Liczba kolumny mniejsza niż jedna jest dzielona przez 26:

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

  • (Pętla 2, krok 3) Litera b+1 alfabetu:

    0 + 1 = 1, pierwsza litera to "A" Result = "AD"

  • (Pętla 2, krok 4) Powrót do kroku 1 za pomocą iCol = a

    iCol = 0

  • (Pętla 3, krok 1) Numer kolumny jest mniejszy niż 1, stop.

Następująca funkcja języka VBA jest jednym ze sposobów konwertowania wartości liczbowych kolumn na równoważne im 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ą przekazywane do tej funkcji, na równoważne im znaki tekstowe alfanumeryczne. Nie zmienia to wyglądu kolumny ani nagłówków wierszy w arkuszu fizycznym.