在用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