在编写VBA代码的过程中,出于不同的需要,有时候我们需要R1C1样式的单元格样式,有时候需要A1样式,怎样方便快捷的转换,本人有如下两种方法
- 第一种是使用VBA的内置函数,即ASC和CHR,ASC可以将字母转换为数字,而CHR可以将数字转化为字母,二者本质就是对于ASCII表上的值进行转化,resultA = Chr(result + 96),result输入1~26,resultA会输出A~Z; result = Asc(resultA) - 64,resultA输入A~Z,result会输出1~26
- 另一种方法就是调用函数,如下是一个现成的数字转字母的function,字母转数字的function目前我还没想好怎么写
- Public Function ConvertToLetter(iCol As Long) As String
- Dim a As Long
- Dim b As Long
- a = iCol
- ConvertToLetter = ""
- Do While iCol > 0
- a = Int((iCol - 1) / 26)
- b = (iCol - 1) Mod 26
- ConvertToLetter = Chr(b + 65) & ConvertToLetter
- iCol = a
- Loop
- End Function
这两种方法第一种为主第二种为辅,有时候asc和chr函数会出不了我们需要的结果的时候就可以用function来试试看