VBA将EXCEL的列字母转换为列号
问题描述
在EXCEL中进行VBA宏的编写时,经常会遇到需要将EXCEL工作表的列字母(如A,B,C…)等转化为行号(如1,2,3…)的需求,仅给出一个列字母往往难以对单元格的位置形成一个直观的概念,这时需要将列字母转换为列号就好的多。
列字母 | 列号 |
---|---|
A | 1 |
B | 2 |
C | 3 |
… | … |
AA | 27 |
AB | 28 |
AC | 29 |
… | … |
MultiAB2Num函数定义
Option Explicit
Function MultiAB2Num(MultiAB As String) As Long
Dim n As Byte '0-255
Dim s As Long '最大列数16384
Dim i As Byte
n = Len(MultiAB)
s = 0
For i = 1 To n
s = s + (Asc(Mid(MultiAB, i, 1)) - 64) * 26 ^ (n - i)
Next i
MultiAB2Num = s
End Function
使用示例
debug.Print MultiAB2Num("AB")
'结果:28