【发布时间】:2012-11-27 02:50:31
【问题描述】:
我想让列字母超过 Z 列, 在 Z 列之前有很多技术可以获取它,但在 Z 之后,似乎没有任何效果 有办法吗?
【问题讨论】:
我想让列字母超过 Z 列, 在 Z 列之前有很多技术可以获取它,但在 Z 之后,似乎没有任何效果 有办法吗?
【问题讨论】:
另一种方法:
Public Function ColumnLettersFromRange(rInput As Range) As String
ColumnLettersFromRange = Split(rInput.Address, "$")(1)
End Function
【讨论】:
这应该可以完成工作:
函数 ColumnName(rng As Range) 作为字符串 暗淡为字符串 s = rng.地址(假,假) ColumnName = Left(s, Len(s) - Len(Format(rng.Row, "0"))) 结束功能【讨论】:
使用工作表函数来计算列字母并不是一个好的计划。使用 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)))))
最后一个在尝试计算地址中的第三个字符时失败了,我只是懒得用它,因为它不是一个好计划!
【讨论】:
=IF(QUOTIENT(COLUMN(A1),26^2),CHAR(64+QUOTIENT(COLUMN(A1),26^2)),"")& IF(QUOTIENT(COLUMN(A1),26^1),CHAR(64+QUOTIENT(COLUMN(A1)-QUOTIENT(COLUMN(A1),26^2)*26^2,26^1)),"")& CHAR(64+MOD(COLUMN(A1),26))
=SUBSTITUTE(ADDRESS(1,A1,4),1,"")