如何将Excel列名称转换为数字,反之亦然?



在Excel中,列名类似于A,B,C,当它超过26时,它会转到AA表示27,AB等。当它击中 AZ 时,它就会出现 BA,依此类推。

如何轻松地在名称和数字之间进行转换?我正在寻找一个可以在两者之间切换的计算器。

例如:当我输入"28"时,它应该返回"AB"。如果我打"AB"、"28"。我更喜欢已经制作的在线计算器。

对于 28 的 AB,请尝试,

dim cola as string
cola = split(cells(1, 28).address, "$")(1)
debug.print cola

对于 28 来自 AB 尝试,

dim coli as long
coli = cells(1, "AB").column
debug.print coli

在工作表上键入A1 中的 AB并在 B1 中使用此公式得到 28,

=column(indirect(a1&":"&a1))

在工作表上键入28 中的 A1并在 B1 中使用此公式来获取 AB,

=substitute(address(1, a1, 4, 1), 1, "")

一些用于代码和工作表的用户定义函数

Option Explicit
Public Sub TEST()
Debug.Print GetColNumber("AB")
Debug.Print GetColLetter(28)
End Sub
Public Function GetColNumber(ByVal columnHeader As String) As Long
GetColNumber = Evaluate("CELL(""col"", " & columnHeader & "1)")
End Function
Public Function GetColLetter(ByVal columnNumber As Long) As String
GetColLetter = Split(Evaluate("ADDRESS(1," & columnNumber & ",4)"), 1)(0)
End Function

最新更新