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

Xer*_*ric 3 vbscript type-conversion

我想使用 VBScript 获取一个数字并将其转换为小写a-z字母。

例如:

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

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

Cli*_*ers 5

你应该看看这个Chr(n)函数。

a这将满足您从到 的需求z

wscript.echo Chr(number+96)
Run Code Online (Sandbox Code Playgroud)

要表示数字的多个字母(就像 Excel 那样),您必须检查数字的范围并使用取Mod模运算符。


编辑:

网上有一个快餐复制粘贴的例子:如何将Excel列号转换为字母字符

引用微软的例子:

例如:列数为30。

列号除以 27: 30 / 27 = 1.1111,由 Int 函数向下舍入为“1”。

i = 1
Run Code Online (Sandbox Code Playgroud)

下一列编号 - (i * 26) = 30 -(1 * 26) = 30 - 26 = 4

j = 4
Run Code Online (Sandbox Code Playgroud)

分别将值转换为字母字符,

i = 1 = "A"
j = 4 = "D"
Run Code Online (Sandbox Code Playgroud)

它们组合在一起形成列指示符“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
Run Code Online (Sandbox Code Playgroud)