标签:VBA,自定义函数
Excel中有一个函数DEC2HEX,可以将十进制数转换成十六进制数,然而,当要转换的十进制数较大时,就会出现错误。例如,当转换数字1111112222222时:
=DEC2HEX(1111112222222)
Excel会给出错误#NUM!。
我们可以使用一个VBA自定义函数来解决。代码如下:
代码语言:javascript复制Function DecToHex(N As Double) As String
Dim Y As Double
Const H = "0123456789ABCDEF"
While N <> 0
'注意VBA Mod函数对于大数字也会失败
Y = 16 * (N / 16 - Int(N / 16))
DecToHex = Mid(H, Y 1, 1) & DecToHex
N = N / 16 - Y / 16
Wend
End Function
此时,使用公式:
=DecToHex(1111112222222)
返回值:102B373060E。
有兴趣的朋友可以试试。
注:这里分享的一些VBA程序或自定义函数,有些供研究或学习VBA,是很好的示例,有些或者说大部分都可以直接应用在自己的程序中,提高效率。