ExcelTip.Net留存知识帖 ---【注:附件之前被网盘供应商清空后,现已修复-现已修复-现已修复为本地下载!】
现在位置:首页 > E问E答 > Excel VBA > 如何将数值转为EXCEL的列号

如何将数值转为EXCEL的列号

作者:绿色风 分类: 时间:2022-08-17 浏览:230
楼主
wqfzqgk
Q:如何将数值转为EXCEL的列号?
A:将数值及ROW()或COLUMN()等转为EXCEL的列号,以前见的只是支持256以内的,也就是EXCEL2003以前版本的,现一自定义函数可以解决2007及2010的列号转换问题。
  1. Public Function 数值转列号(数值 As Long) As String
  2.     Dim a As String
  3.     arr = Array("A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z")
  4.     数值转列号 = ""
  5.     Do While 数值 > 0
  6.         a = CStr(数值 Mod 26)
  7.         If a = 0 Then
  8.         a = arr(25)
  9.         数值转列号 = a & 数值转列号
  10.         数值 = (数值 - 26) / 26
  11.         Else
  12.         a = arr(a - 1)
  13.         数值转列号 = a & 数值转列号
  14.         数值 = Int(数值 / 26)
  15.         End If
  16.     Loop
  17. End Function

具体用法:=数值转列号(1238)或=数值转列号(column())
2楼
0Mouse
貌似以下3个也都可行。
  1. Public Function 列号1(数值 As Long) As String
  2.     列号1 = Split(Cells(1, 数值).Address, "$")(1)
  3. End Function

  4. Public Function 列号2(数值 As Long) As String
  5.     列号2 = Mid(Replace(Cells(1, 数值).Address, "$1", ""), 2)
  6. End Function

  7. Public Function 列号3(数值 As Long) As String
  8.     Dim pos$
  9.     pos = Cells(1, 数值).Address
  10.     列号3 = Mid(pos, 2, InStr(2, pos, "$") - 2)
  11. End Function
附件:
数值转列号3方法xq.rar

免责声明

有感于原ExcelTip.Net留存知识的价值及部分知识具有的时间限定性因素, 经与ExcelTip.Net站长Apolloh商议并征得其同意, 现将原属ExcelTip.Net的知识帖采集资料于本站点进行展示, 供有需要的人士查询使用,也慰缅曾经的论坛时代。 所示各个帖子的原作者如对版权有异议, 可与本人沟通提出,或于本站点留言,我们会尽快处理。 在此,感谢ExcelTip.Net站长Apolloh的支持,感谢本站点所有人**绿色风(QQ:79664738)**的支持与奉献,特此鸣谢!
------本人网名**KevinChengCW(QQ:1210618015)**原ExcelTip.Net总版主之一

评论列表
sitemap