Så här konverterar du kolumnnummer i Excel till alfabetiska tecken

Anteckning

Office 365 ProPlus byter namn till Microsoft 365-appar för företag. Mer information om den här ändringen finns i det här blogginlägget.

Introduktion

I den här artikeln beskrivs hur du använder microsoft VBA-funktionen (Visual Basic for Applications) i Microsoft Excel för att konvertera kolumnnummer till motsvarande alfabetisk teckendesigner för samma kolumn.

Kolumnnumret 30 konverteras till exempel till motsvarande alfabetiska tecken "AD".

Mer information

Microsoft tillhandahåller programmeringsexempel enbart i förklarande syfte och gör inga utfästelser, varken uttryckligen eller underförstått. Detta omfattar men begränsas inte till underförstådd garanti för säljbarhet eller lämplighet för ett visst syfte. I denna artikel förutsätts att du känner till det programmeringsspråk som demonstreras och de verktyg som används för att skapa och felsöka procedurer. Microsofts supportexperter kan hjälpa till att förklara funktionerna i en viss procedur, men de kommer inte att ändra dessa exempel för att tillhandahålla extra funktioner eller konstruera procedurer för att uppfylla dina specifika behov.

Funktionen ConvertToLetter fungerar med följande algoritm:

  1. Låt iCol oss vara kolumnnumret. Avbryt om iCol är mindre än 1.
  2. Beräkna kvoten och resten vid division (iCol - 1) med 26, och lagra i variabler a och b .
  3. Konvertera heltalsvärdet till motsvarande alfabetiska tecken (0 => A, 25 => Z) och tack det på längst fram i b resultatsträngen.
  4. Ställ iCol in på nämnaren och a loopen.

Till exempel: Kolumnnumret är 30.

  • (Steg 1, steg 1) Kolumnnumret är minst 1, fortsätt.

  • (Steg 1, steg 2) Det kolumnnummer som är mindre en har dividerats med 26:

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

  • (Slinga 1, steg 3) Använda (b+1) bokstaven i alfabetet:

    3 + 1 = 4, fjärde bokstaven är "D". Result = "D"

  • (Steg 1, steg 4) Gå tillbaka till steg 1 med iCol = a

    iCol = 1

  • (Steg 2, steg 1) Kolumnnumret är minst 1, fortsätt.

  • (Steg 2, steg 2) Det kolumnnummer som är mindre en har dividerats med 26:

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

  • (Steg 2, steg 3) Använda b+1 bokstaven i alfabetet:

    0 + 1 = 1, första bokstaven är "A" Resultat = "AD"

  • (Steg 2, steg 4) Gå tillbaka till steg 1 med iCol = a

    iCol = 0

  • (Steg 3, steg 1) Kolumnnumret är mindre än 1, stopp.

Följande VBA-funktion är bara ett sätt att konvertera kolumnnummervärden till motsvarande alfabetiska tecken:

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

Obs! Med den här funktionen konverteras bara heltal som överförs till motsvarande alfanumeriska texttecken. Den ändrar inte utseendet på kolumn- eller radrubrikerna i det fysiska kalkylbladet.