7

可能重复:
将列号转换为字母的 VBA 函数?

我想让列字母超过 Z 列,在 Z 列之前有很多技术可以得到它,但是在 Z 之后,似乎没有任何效果有没有办法做到这一点?

4

3 回答 3

17

另一种方法:

Public Function ColumnLettersFromRange(rInput As Range) As String

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

End Function
于 2012-12-10T02:49:31.637 回答
7

这应该做的工作:

函数 ColumnName(rng As Range) 作为字符串
    暗淡为字符串
    s = rng.地址(假,假)
    ColumnName = Left(s, Len(s) - Len(Format(rng.Row, "0")))
结束功能
于 2012-12-09T16:17:53.900 回答
1

使用工作表函数来计算列字母并不是一个好的计划。使用 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)))))

最后一个在尝试计算地址中的第三个字符时失败了,我只是不能打扰,因为使用它不是一个好计划!

于 2012-12-09T16:55:26.880 回答