ExcelTip.Net留存知识帖 ---【注:附件之前被网盘供应商清空后,现已修复-现已修复-现已修复为本地下载!】
现在位置:首页 > E问E答 > Excel VBA > 如何编写列数字转换成对应列标字母的自定义函数呢?

如何编写列数字转换成对应列标字母的自定义函数呢?

作者:绿色风 分类: 时间:2022-08-17 浏览:170
楼主
0Mouse
Q:如何编写列数字转换成对应列标字母的自定义函数呢?
A:以下三段代码均可实现将列数字转变成对应的列标字母。
  1. Public Function 列号1(数值 As Integer) As String
  2.     If 数值 > Cells.Columns.Count Then
  3.         列号1 = "Error"
  4.     Else
  5.         列号1 = Split(Cells(1, 数值).Address, "$")(1)
  6.     End If
  7. End Function

  8. Public Function 列号2(数值 As Integer) As String
  9.     If 数值 > Cells.Columns.Count Then
  10.         列号2 = "Error"
  11.     Else
  12.         列号2 = Mid(Replace(Cells(1, 数值).Address, "$1", ""), 2)
  13.     End If
  14. End Function

  15. Public Function 列号3(数值 As Integer) As String
  16.     If 数值 > Cells.Columns.Count Then
  17.         列号3 = "Error"
  18.     Else
  19.         Dim pos$
  20.         pos = Cells(1, 数值).Address
  21.         列号3 = Mid(pos, 2, InStr(2, pos, "$") - 2)
  22.     End If
  23. End Function
用法:在单元格内输入“=列号1(列数字)”或者“=列号1(COLUMN())”,“列号2”、“列号3”用法相同。
附件:
列数字转变成对应列标字母的三个自定义函数.rar
2楼
い卋玑┾宝珼
谢谢小千分享
3楼
Zaezhong
高版本只到16384,integer的范围较大,超过的时候出现错误值
4楼
0Mouse
确实考虑的比较周到,不过我觉得函数返回错误值恰恰可以提醒用户使用出错了,如果加了消错语句,结果返回空,这个对用户来说不见得是什么好事。
  1. =MID("a",-1,1)
这个一样返回错误值,说明用户使用错误,不遵循参数约定,所以我觉得没必要加容错语句了,如果确实需要加,我再加上,辛苦了!:-)
5楼
Zaezhong
超过的时候可以直接显示error,而不是那个Value错误值
6楼
老糊涂
学习

免责声明

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

评论列表
sitemap