前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >VBA程序:将数字转换成任意进制的数

VBA程序:将数字转换成任意进制的数

作者头像
fanjy
发布2023-12-11 16:03:47
发布2023-12-11 16:03:47
23900
代码可运行
举报
文章被收录于专栏:完美Excel完美Excel
运行总次数:0
代码可运行

标签:VBA

在forum.ozgrid.com中看到的一段程序,可以将数字转换成任意进制的数。

代码如下:

代码语言:javascript
代码运行次数:0
运行
复制
Public Function Bas2Bas(Number As String, Optional ByVal FromBase As Byte = 10, Optional ByVal ToBase As Byte = 16) As String
 Const BaseDigits As String = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
 Dim MyResult As String
 Dim dRemainder As Double
 Dim MyPlace As Byte
 Dim MyDigit As Byte
 Dim dValue As Double
 On Error Resume Next
 If Len(Number) > 15 Then GoTo Done
 
 Number = UCase(Number)
 If (ToBase < 2) Or (ToBase > 36) Then GoTo Done
 
 For MyPlace = 1 To Len(Number)
   For MyDigit = 0 To 36
     If MyDigit >= FromBase Then GoTo Done
     If Mid(BaseDigits, MyDigit + 1, 1) = Mid(Number, MyPlace, 1) Then Exit For
   Next
   dValue = dValue + MyDigit * FromBase ^ (Len(Number) - MyPlace)
 Next
 
 Do
   dRemainder = dValue - (ToBase * Int((dValue / ToBase)))
   MyResult = Mid(BaseDigits, dRemainder + 1, 1) & MyResult
   dValue = Int(dValue / ToBase)
 Loop While (dValue > 0)
Done:
 Bas2Bas = MyResult
End Function

这是一个自定义函数,默认是将一个十进制数转换为一个十六进制数,你可以将一个十进制数转换为8进制或你认为的其他进制,如3进制!可将一个八进制数转换成一个十六进制数。

你可以试试看!

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-12-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 完美Excel 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档