vba 在代码窗口里不能正常显示的双字节字符的转换

本文介绍如何在VBA中处理特殊字符如Ⓐ~⓾,通过uniCode函数实现Unicode转字符串,以解决在打印发票小程序中字符显示问题。

在用vba编写打印发票的小程序时,发现①~⑩ ⑴~⒇ ⒈~⒛ 等序号显示没问题,而⒜~⒵ Ⓐ~Ⓩ ⓐ~ⓩ ⓪ ⓫~⓴ ⓵~⓾等字符在代码编辑器里是显示不出来的,显示一个?

刚开始把字符藏在sheet的某个单元格里到要用时再去取,后来在网上找到一个uniCode双字节字符转字符串的函数非常好用,实质就是调用了JavaScript里的unescape()字符串解码函数,分享如下:

Function strUnicode(s As String) As String
    With CreateObject("MSScriptControl.ScriptControl")
        .Language = "JavaScript"
        strUnicode = .Eval("unescape('" & s & "');")
    End With
End Function

Sub Test() '输出 \u249C ~ \u24FF 等在代码编辑窗口里显示?的双字节字符
    For i = 156 To 255
        Cells(i - 155, 1) = VBA.Hex(i)
        Cells(i - 155, 2) = strUnicode("\u24" + VBA.Hex(i))
    Next
End Sub

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Hann Yang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值