使用下列算法可以实现“ConvertToLetter”功能:
- 列号除以 27,然后将得到的整数赋值给变量“i”。
- 列号减去 i*26,然后将所得结果赋值给变量“j”。
- 将得到的整数值转换为其对应的字母字符,“i”和“j”的取值范围将分别为 0 至 26。
- 列号除以 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”。
1 Function ConvertToLetter(iCol As Integer) As String
2 Dim iAlpha As Integer
3 Dim iRemainder As Integer
4 iAlpha = Int(iCol / 27)
5 iRemainder = iCol - (iAlpha * 26)
6 If iAlpha > 0 Then
7 ConvertToLetter = Chr(iAlpha + 64)
8 End If
9 If iRemainder > 0 Then
10 ConvertToLetter = ConvertToLetter & Chr(iRemainder + 64)
11 End If
12 End Function
13
注意:此函数仅将传递给它的整数转换为其对应的字母数字文本字符,不改变实际工作表上的列标题或行标题的外观。
2 Dim iAlpha As Integer
3 Dim iRemainder As Integer
4 iAlpha = Int(iCol / 27)
5 iRemainder = iCol - (iAlpha * 26)
6 If iAlpha > 0 Then
7 ConvertToLetter = Chr(iAlpha + 64)
8 End If
9 If iRemainder > 0 Then
10 ConvertToLetter = ConvertToLetter & Chr(iRemainder + 64)
11 End If
12 End Function
13