Spaltennummer ↔ Spaltenbezeichnung, VBA

Spaltennummer aus Spaltenbezeichnung errechnen und umgekehrt (VBA)

Manchmal ist es beim programmieren sinnvoller, statt der alphanumerischen Spaltenbezeichnung die numerische zu verwenden. Auch der umgekehrte Fall ist denkbar, dass eine numerische Spaltenbezeichnung bekannt ist und alphanumerische (also die Buchstaben) angezeigt werde soll. Der folgende Code erfüllt kurz und prägnant diese Forderungen:

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 Funktionen zu kryptisch sind, dürfen Sie die natürlich umbenennen. 😉  Ich verwende diese Kurzform, weil ich schreibfaul bin. Dabei steht der Funktionsname ColC2N für Column_Character_To_Numeric und ColN2C entsprechend für die englische Bezeichnung Column_Numeric_To_Character. 💡 

Ergänzung: Den Code (identisch zu dem obigen)  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 Ihrerseits 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.