首页 > 代码库 > <原创>两个数字列号转字母列名的小程序

<原创>两个数字列号转字母列名的小程序

  我在工作中遇到一个问题,在编写excel宏代码的时候,有时候,某一个数据需要定位放在某一个单元格中,但是这个单元格并不是本身就存在的单元格,而是在程序执行过程中,一步一步填写数据之后生成出来的单元格,只知道应该是第几列,却不知道列名字母是什么,所以,我就编写了下面的小程序,两个小程序的效果一样,只不过在编写思路上有差别。

技术分享

这两个小程序都采用了函数的方式,方便在其他的程序中调用。

  Function ColNoToColName1(ColNo As Integer) As String  列号转为列名

     If ColNo > 26 Then

       ColName = Chr(Int((ColNo - 1) / 26+ 64& Chr(((ColNo - 1Mod 26+ 65)

     Else

       ColName = Chr(ColNo + 64)

     End If

       ColNoToColName1 = ColName

   End Function

 

  Function ColNoToColName2(ColNo As Integer) As String  列号转为列名

     ColName = ""

     LeftWord = ""

     RightWord = ""

     If ColNo <= 26 Then

        ColName = Chr(Asc("A"+ ColNo - 1单字母列

     Else

        If Int(ColNo / 26= (ColNo / 26Then

           LeftWord = Chr(Asc("A"+ Int(ColNo / 26- 2双字母列

           RightWord = Chr(Asc("A"+ Int(ColNo - (Int(ColNo / 26- 1* 26- 1)

        Else

           LeftWord = Chr(Asc("A"+ Int(ColNo / 26- 1双字母列

           RightWord = Chr(Asc("A"+ Int(ColNo - Int(ColNo / 26* 26- 1)

        End If

        ColName = LeftWord & RightWord

     End If

        ColNoToColName2 = ColName

   End Function

<原创>两个数字列号转字母列名的小程序