如何在VBS中将数字转换为字母?

时间:2016-08-05 17:51:31

标签: vbscript type-conversion

我想使用VBScript将数字转换为小写的a-z字母。

例如:

  • 1转换为a
  • 2转换为b
  • 27转换为aa
  • 28转换为ab
  • 等......

特别是在转换为2个字母单元格名称后,我在26之后转换数字时遇到问题。 ( aa ab ac 等)

2 个答案:

答案 0 :(得分:3)

您应该查看Chr(n)功能。

这符合您的需求,从az

wscript.echo Chr(number+96)

要表示数字的多个字母,(例如excel会这样做),您必须检查范围的数字,并使用Mod运算符进行模数。

编辑:

网上有快餐复制和粘贴示例:How to convert Excel column numbers into alphabetical characters

来自microsoft的引用示例:

  

例如:列号为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)