Spaltennummer ↔ Spaltenbezeichnung, VBA

Spaltennummer aus Spaltenbezeichnung errechnen und umgekehrt (VBA)

Manch­mal ist es beim pro­gram­mieren sin­nvoller, statt der alphanu­merischen Spal­tenbeze­ich­nung die numerische zu ver­wen­den. Auch der umgekehrte Fall ist denkbar, dass eine numerische Spal­tenbeze­ich­nung bekan­nt ist und alphanu­merische (also die Buch­staben) angezeigt werde soll. Der fol­gende Code erfüllt kurz und präg­nant diese Forderun­gen:

Option Explicit

Sub ColChar2Num()
   Dim SpaltenNummer As Integer
   SpaltenNummer = Columns("ABC").Column
   MsgBox SpaltenNummer
End Sub

Sub ColNum2Char()
   Dim SpaltenZeichen As String
   SpaltenZeichen = Columns(731).Address(0, 0)
   SpaltenZeichen = Left(SpaltenZeichen, InStr(SpaltenZeichen, ":") - 1)
   MsgBox SpaltenZeichen
End Sub

'
'Sinnvollerweise auch als Function

Function ColC2N(cAlphaCol As String) As Integer
   ColC2N = Columns(cAlphaCol).Column
End Function

Function ColN2C(iNumCol As Integer) As String
   ColN2C = Left(Columns(iNumCol).Address(0, 0), _
    InStr(Columns(iNumCol).Address(0, 0), ":") - 1)
End Function

'Aufruf der Funktionen
Sub TestMe()
   MsgBox "Die Spaltennummer  731  entspricht Spalte  " & Chr(34) & ColN2C(731) & Chr(34)
   MsgBox "Die Spalte  " & Chr(34) & "ABC" & Chr(34) & "  hat die Spaltennummer  " & ColC2N("ABC")
End Sub

Falls Ihnen die Namen der Funk­tio­nen zu kryp­tisch sind, dür­fen Sie die natür­lich umbe­nen­nen. 😉  Ich ver­wende diese Kurz­form, weil ich schreib­faul bin. Dabei ste­ht der Funk­tion­sname ColC2N für Column_Character_To_Numeric und ColN2C entsprechend für die englis­che Beze­ich­nung Column_Numeric_To_Character. 💡 

Ergänzung: Den Code (iden­tisch zu dem obi­gen)  gibt es hier als zip-Datei.

▲ nach oben …

Hat Ihnen der Beitrag gefallen?
Erleichtert dieser Beitrag Ihre Arbeit?

Dann würde ich mich über einen Beitrag Ihrer­seits z.B. 1,50  freuen …

Dieser Beitrag wurde unter Code-Schnipsel, Mit VBA/Makro, Rechnen & Zahlen, Tabelle und Zelle, Tipps und Tricks abgelegt und mit , , , , verschlagwortet. Setze ein Lesezeichen auf den Permalink.