|
发表于 2017-3-22 10:03:53
|
显示全部楼层
本帖最后由 wangjiati 于 2017-3-22 10:08 编辑
Private Function myMod(a As Variant, b As Integer) As Integer
Dim I As Integer
For I = 1 To Len(a)
If I = 1 Then
myMod = CInt(Mid(a, I, 1)) Mod b
Else
myMod = (myMod * 10 + CInt(Mid(a, I, 1))) Mod b
End If
Next
End Function
Public Function CHANGE_10TO36(number As Variant) As String
Dim remainder As Variant
Dim a As Variant
Dim result As String
If number >= 1 Then
table_36 = Array("0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "A", "B", "C", "D", "E", "F", _
"G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z")
a = Fix(number / 36)
remainder = myMod(number, 36)
result = table_36(remainder) & result
Do While a >= 36
remainder = myMod(a, 36)
result = table_36(remainder) & result
a = Fix(a / 36)
Loop
If a > 0 Then
a = Fix(a)
result = table_36(a) & result
End If
CHANGE_10TO36 = result
Else
CHANGE_10TO36 = 0
End If
End Function
=DEC2HEX(C9)//16进制自带函数 |
|