前端开发入门到精通的在线学习网站

网站首页 > 资源文章 正文

以下函数可以用于VB6,也可以用在VBA当中! '...

qiguaw 2024-11-11 13:10:06 资源文章 18 ℃ 0 评论

以下函数可以用于VB6,也可以用在VBA当中!

'''' 将十进制数值转换为表示二十六进制、三十六进制的字符串;

'''' 十进制的数字字符不要超过9位数,否则,会出现溢出错误。如果是分段转换、分段还原的话,可以处理27位的长数字串!

'''' xN = 26、36

Public Function Dec10_To_TSB_xN(NumX As Variant, xN As Long) As String

Dim An As Variant, B As Variant, C(36) As String, i As Long

Dim j As Long, Jx As Variant

Dim conStrList As Variant

On Error GoTo xMyError:

'各进制的数字字母序列字符串

Select Case xN

Case Is = 26

conStrList = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"

Case Is = 36

conStrList = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"

End Select

'转换

B = NumX

Do While B > 0 '如果 B 等于 0 ,那么,就结束循环。

An = Val(B Mod xN) '求余数

If An = 0 Then An = xN

C(i) = Mid(conStrList, An, 1) '转为以数字字母(0-9 A-Z)表示的字符。

i = Val(i) + 1

B = (B - An) / xN ' 减去余数,看大小,再计算。

Loop

'给出字符串函数结果

For Each Jx In C

Dec10_To_TSB_xN = Dec10_To_TSB_xN & C(j) '并列字符串

j = Val(j) + 1

Next Jx

Dec10_To_TSB_xN = StrReverse(Trim(Dec10_To_TSB_xN)) '字符串反序后输出结果 ZSJZCY(26) = 317791759(10)

xMyError:

If Err Or Dec10_To_TSB_xN = "" Then

MsgBox Err.Description & Err.Number & vbCrLf & "数字字符串不要超过9位数!" & vbCrLf & " 勾选超过9位数分段显示。", vbCritical, "错误提示"

End If

End Function

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表