Access开发培训
网站公告
·Access专家课堂QQ群号:151711184    ·Access快速开发平台下载地址及教程    ·欢迎加入Access专家课堂微信群!    ·如何快速搜索本站文章|示例|资料    
您的位置: 首页 > 技术文章 > Access数据库-模块/函数/VBA

【access源码】字符串递增——二十六进制和十进制的转换

时 间:2011-02-16 00:00:00
作 者:红尘如烟   ID:10768  城市:成都
摘 要:网友“胡永炽”提的一个问题,如何实现字符串递增 http://www.accessoft.com/bbs/showtopic.asp?id=11526
实际上就是类似于Excel中的列序号,从A开始,A、B、C……AA、AB、AC……AAA、AAB、AAC……


正 文:

网友“胡永炽”提的一个问题,如何实现字符串递增 http://www.accessoft.com/bbs/showtopic.asp?id=11526
实际上就是类似于Excel中的列序号,从A开始,A、B、C……AA、AB、AC……AAA、AAB、AAC……

由于字母有26个,因此我们可以将其它视为一个二十六进制的数来处理,由于计算机本身并没有提供二十六进制的计算功能,所以需要先转换为十进制,然后通过十进制进行计算,再将计算结果转换为二十六进制即可。

'将表示二十六进制字符串转换为十进制数值
'红尘如烟   2011-2-15
Function Hex26To10(Number As String) As Double
    Dim intI As Integer
    Dim strChar As String
    Dim intPos As Integer
    Const conStrList = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
   
    For intI = Len(Number) To 1 Step -1
        strChar = Mid(Number, intI, 1)
        intPos = InStr(1, conStrList, strChar) - 1
        Hex26To10 = Hex26To10 + intPos * 26 ^ (Len(Number) - intI)
    Next
End Function

'将十进制数值转换为表示二十六进制的字符串
'红尘如烟   2011-2-15
Function Hex10To26(Number As Double) As String
    Dim dblNum As Double
    Const conStrList = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
   
    dblNum = Number
    Do Until dblNum = 0
        Hex10To26 = Hex10To26 & Mid(conStrList, (dblNum Mod 26) + 1, 1)
        dblNum = dblNum \ 26
    Loop
    Hex10To26 = StrReverse(Hex10To26)
End Function

示例: =Hex10To26(Hex26To10("ZZ")+1)  '返回 BAA
l

Access软件网官方交流QQ群 (群号:483923997)       Access源码网店

常见问答:

技术分类:

相关资源:

专栏作家

关于我们 | 服务条款 | 在线投稿 | 友情链接 | 网站统计 | 网站帮助