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.
Hat Ihnen der Beitrag gefallen?
Erleichtert dieser Beitrag Ihre Arbeit?
Dann würde ich mich über einen Beitrag Ihrerseits z.B. 1,50 € freuen …