excel vba 数字列转成字母列
答案:5 悬赏:40 手机版
解决时间 2021-03-09 22:21
- 提问者网友:最美的风景
- 2021-03-09 08:58
excel vba 数字列转成字母列
最佳答案
- 五星知识达人网友:十年萤火照君眠
- 2021-03-09 09:19
一定要用这种方法可以试试下面这个function,2010通过。
Function ConvertToLetter(iCol As Integer) As String
Dim iAlpha As Integer
Dim iColTemp As Integer
Dim i As Integer
If iCol > 702 Then
i = 26
iColTemp = iCol - 26 ^ 2 * i
While iColTemp < 27
i = i - 1
iColTemp = iCol - 26 ^ 2 * i
ConvertToLetter = Chr(i + 64)
Wend
iCol = iColTemp
End If
iAlpha = (iCol - 1) \ 26
Select Case iAlpha
Case 0
Case Else
ConvertToLetter = ConvertToLetter & Chr(64 + iAlpha)
End Select
ConvertToLetter = ConvertToLetter & Chr(64 + ((iCol - 1) Mod 26) + 1)
End Function
另外,如果你只是想获取单元格列标,可以使用下面的代码,应该是最简单直接的。
GetColumn = Split(Cells(1, C).Address, "$")(1) ‘C 是列号
Function ConvertToLetter(iCol As Integer) As String
Dim iAlpha As Integer
Dim iColTemp As Integer
Dim i As Integer
If iCol > 702 Then
i = 26
iColTemp = iCol - 26 ^ 2 * i
While iColTemp < 27
i = i - 1
iColTemp = iCol - 26 ^ 2 * i
ConvertToLetter = Chr(i + 64)
Wend
iCol = iColTemp
End If
iAlpha = (iCol - 1) \ 26
Select Case iAlpha
Case 0
Case Else
ConvertToLetter = ConvertToLetter & Chr(64 + iAlpha)
End Select
ConvertToLetter = ConvertToLetter & Chr(64 + ((iCol - 1) Mod 26) + 1)
End Function
另外,如果你只是想获取单元格列标,可以使用下面的代码,应该是最简单直接的。
GetColumn = Split(Cells(1, C).Address, "$")(1) ‘C 是列号
全部回答
- 1楼网友:神的生死簿
- 2021-03-09 13:00
不会啊啊啊啊
- 2楼网友:痴妹与他
- 2021-03-09 12:29
换个思路呗!用case 1 to 26,case 27 to 676,顺推,这样就能往后写四位,五位甚至更高位数了吧!
- 3楼网友:琴狂剑也妄
- 2021-03-09 11:06
点“工具”-----选项----常规----勾选“R1C1引用式样-----确定。列标A、B、C.....就变成1、2、3...了。
没看清题,答错了。不必在意。
没看清题,答错了。不必在意。
- 4楼网友:渡鹤影
- 2021-03-09 09:32
Sub find()
what = InputBox("请输入数字")*1
set mc=cells(1,what)
msgbox mid(mc.address,2,len(mc.address)-3)
Cells(1, CInt(What)).Activate
End Sub
晕,被LZ的VBA坑了,想天边去了。。
what = InputBox("请输入数字")*1
set mc=cells(1,what)
msgbox mid(mc.address,2,len(mc.address)-3)
Cells(1, CInt(What)).Activate
End Sub
晕,被LZ的VBA坑了,想天边去了。。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯