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:
- Låt
iCol
oss vara kolumnnumret. Avbryt omiCol
är mindre än 1. - Beräkna kvoten och resten vid division
(iCol - 1)
med 26, och lagra i variablera
ochb
. - Konvertera heltalsvärdet till motsvarande alfabetiska tecken (0 => A, 25 => Z) och tack det på längst fram i
b
resultatsträngen. - Ställ
iCol
in på nämnaren ocha
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.