excel vba column number to column name code example

Example 1: excel vba function to convert column number to letter

Function ColName(n)
    ColName = Split(Cells(, n).Address, "$")(1)
End Function

Example 2: excel vba column letter

Function ColumnLetter(pColIndex As Long) As String
    ColumnLetter = Replace(Cells(1, pColIndex).Address(True, False), "$1", "")
End Function

Example 3: excel vba column letter to number

Sub Test()
  Debug.Print "result: " & getColIndex("DD")  ' --> result: 108
End Sub

Function getColIndex(sColRef As String) As Long
  Dim i As Long, sum As Long, iRefLen As Long
  sum = 0: iRefLen = Len(sColRef)
  For i = iRefLen To 1 Step -1
    sum = sum + Base26(Mid(sColRef, i)) * 26 ^ (iRefLen - i)
  Next
  getColIndex = sum
End Function

Private Function Base26(sLetter As String) As Long
  Base26 = Asc(UCase(sLetter)) - 64 'fixed
End Function

Tags:

Vb Example