我想使用VBScript将数字转换为小写的a-z
字母。
例如:
1
转换为a
2
转换为b
27
转换为aa
28
转换为ab
特别是在转换为2个字母单元格名称后,我在26之后转换数字时遇到问题。 ( aa , ab , ac 等)
答案 0 :(得分:3)
您应该查看Chr(n)
功能。
这符合您的需求,从a
到z
:
wscript.echo Chr(number+96)
要表示数字的多个字母,(例如excel会这样做),您必须检查范围的数字,并使用 Mod
运算符进行模数。
编辑:
网上有快餐复制和粘贴示例:How to convert Excel column numbers into alphabetical characters
例如:列号为30。
列号除以27:
30 / 27 = 1.1111
,由Int函数向下舍入为“1”。i = 1
下一列号 - (i * 26)=
30 -(1 * 26) = 30 - 26 = 4
。j = 4
将值分别转换为字母字符,
i = 1 = "A" j = 4 = "D"
组合在一起,形成了列标识符“AD”。
及其代码:
Function ConvertToLetter(iCol As Integer) As String
Dim iAlpha As Integer
Dim iRemainder As Integer
iAlpha = Int(iCol / 27)
iRemainder = iCol - (iAlpha * 26)
If iAlpha > 0 Then
ConvertToLetter = Chr(iAlpha + 64)
End If
If iRemainder > 0 Then
ConvertToLetter = ConvertToLetter & Chr(iRemainder + 64)
End If
End Function
答案 1 :(得分:0)
试试这个
function converts(n)
Dim i, c, m
i = n
c = ""
While i > 26
m = (i mod 26)
c = Chr(m+96) & c
i = (i - m) / 26
Wend
c = Chr(i+96) & c
converts = c
end function
WScript.Echo converts(1000)