ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

VBA中十六进制转换问题

2022-05-13 07:00:15  阅读:180  来源: 互联网

标签:十六进制 VBA 转换 Sub Dim Integer 93


VBA语言中,数字表示的方法还有八进制、十六进制、科学计数法。例如

Dim a As Integer
Dim b As Integer
a = &O111
b = &HA

对于科学计数法,如果书写代码时录入 a = 1.2E-3,VBA编辑器会自动改写为0.0012

  • 预先了解的英语知识

二进制BIN、八进制OCT、十进制DEC、十六进制HEX

  • 十进制数字转换为八进制、十六进制、字符串

VBA内置函数库下面Conversion类中,有OCT、HEX等函数,用于将任何形式的数字转换为字符串。例如

?VBA.Conversion.Hex(10)将得到字符串"A",这是因为十进制的10与十六进制的A是相等的。 10=&HA

注意了,转换为其他进制,得到的结果是字符串(划重点)

Sub 数字转换为其他进制()
    Dim d As Integer
    Dim o As String
    Dim h As String
    Dim s As String
    d = 93
    o = Oct(d)
    h = Hex(d)
    s = CStr(d)
    Debug.Print o, h '打印结果     "135"    "5D"
    Debug.Print d, s '打印结果      93      "93"
End Sub

从上例子可以看到十进制93等于八进制的135,也等于十六进制的5D。下面继续学习

  • 数字的等价性

VBA中,凡是以&O或&H开头的都是数字,不是字符串(划重点)。除非故意用双引号包围起来。

也就是说,&O135是十进制的数字,无论是类型还是大小,与数字93完全相同!

Sub 数字的等价性()
    Dim d As Integer
    Dim o As Integer
    Dim h As Integer
    d = 93
    o = &O135
    h = &H5D
    Debug.Print d = o
    Debug.Print d = h
End Sub

以上打印出两个True。证明一切!只不过是表现不同而已。

  • 字符串转换为数值 

对于任何形式的数字字符串,均可使用Val函数转换为对应的十进制数

Sub 字符串转换为数字()
    Dim d As Integer
    Dim o As Integer
    Dim h As Integer
    d = Val("93")
    o = Val("&O135")
    h = VBA.Conversion.Val("&H5D")
End Sub

(全文完)

 

标签:十六进制,VBA,转换,Sub,Dim,Integer,93
来源: https://www.cnblogs.com/ryueifu-VBA/p/16265263.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有