如何获取单元格的列号(需要使其在Z列上工作,如AA,AB)

时间:2012-12-09 14:25:43

标签: excel vba

  

可能重复:
  VBA function to convert column number to letter?

我希望列字母超过Z列, 有许多技术可以在Z列之前获得它但在Z之后,似乎没有任何效果 有办法吗?

3 个答案:

答案 0 :(得分:15)

另一种方法:

Public Function ColumnLettersFromRange(rInput As Range) As String

    ColumnLettersFromRange = Split(rInput.Address, "$")(1)

End Function

答案 1 :(得分:6)

这应该做的工作:

Function ColumnName(rng As Range) As String
    Dim s As String
    s = rng.Address(False, False)
    ColumnName = Left(s, Len(s) - Len(Format(rng.Row, "0")))
End Function

答案 2 :(得分:2)

使用工作表函数计算列字母并不是一个好的计划。使用Peter Albert的VBA方法是一种更好的方法!

我开始使用工作表函数制作一个,只是为了好玩:/

A-ZZ

=IF(A1<27,CHAR(64+A1),IF(A1<703,CHAR(64+INT(A1/26))&CHAR(A1-INT(A1/26)+64),"TOO BIG!"))

A-XFD(不起作用)

=IF(A1<27,CHAR(64+A1),IF(A1<703,CHAR(64+INT(A1/26))&CHAR(A1-(INT(A1/26)*26)+64),CHAR(64+INT(A1/676))&CHAR(64+(INT(A1-(INT(A1/676)*676))/26))&CHAR(64+INT(A1-((INT(A1-(INT(A1/676)*676))/26)*26)))))

最后一个试图计算出地址中的第3个字符,我只是不能打扰使用它不是一个好计划!