【access源码】字符串递增——二十六进制和十进制的转换-红尘如烟
Access软件网QQ交流学习群(群号码198465573),欢迎您的加入!
首页 >技术文章> Access数据库-模块/函数/VBA


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

发表时间:2011/2/16 评论(3) 浏览(36660)  评论 | 加入收藏 | 复制
   
摘 要:网友“胡永炽”提的一个问题,如何实现字符串递增 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群(群号:198465573)
 
 相关文章
【Access源码示例】Access正则匹配指定字符串长度  【漏蛧尐魚℡  2013/4/20】
零长度字符串与空值的区别  【殷小宝  2013/4/20】
【Access小品】替换批量Word文件中的字符串示例  【煮江品茶  2013/4/27】
InstrRev函数,从右边算起,获取字符串在另一个字符串中出现的...  【宏鹏  2013/5/1】
access中null和空字符串的区别  【小赵  2013/5/6】
常见问答
技术分类
相关资源
文章搜索
关于作者

红尘如烟

文章分类

文章存档

友情链接