Excel 2007 vbe无法识别重音字符

时间:2016-06-28 21:14:14

标签: excel vba excel-vba non-ascii-characters

所以我试着编写一个vba代码来将重音字符转换为常规字符。我已将所有重音字符声明为常量,将常规字符声明为另一个常量。 但我无法在vba脚本中插入某些重音字符,因为Visual Basic编辑器将它们识别为'??'仅

这就是我要做的事情:

Const AccChars = "ŠŽšžŸÀÁÂÃÄÅĀÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðñòóôõöùúûüýÿěłļņī"
Const RegChars = "SZszYAAAAAAACEEEEIIIIDNOOOOOUUUUYaaaaaaceeeeiiiidnooooouuuuyyellni"

这样我就可以用RegChars取代AccChars。

但是当我将上述行复制到vbe时,Const AccChars显示如下:

Const AccChars = "ŠŽšžŸÀÁÂÃÄ?ĀÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖÙÚÛÜÝàáâãäå?èéêëìíîïðñòóôõöùúûüýÿ?????"

我如何获得vbe接受字符,例如Ç,ě,ł,ļ,ņ,ī,Å。

我尝试从控制面板更改tools->选项中的字体,甚至是非Unicode程序的语言(系统区域设置)。 我也试过从另一个文本文件中读取字符串,这也没有效果。

任何建议都将受到高度赞赏。

1 个答案:

答案 0 :(得分:4)

我认为您无法使用代码>将VBE(或常规消息框)转换为显示字符。但是你可以通过添加适当的Unicode字符来构造一个包含这些字符的字符串。因此,对于帖子中的AccChars字符串:

Dim AccChars As String
AccChars = "ŠŽšžŸÀÁÂÃÄÅAÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðñòóôõöùúûüýÿ" _
        & ChrW(283) & ChrW(322) & ChrW(316) & ChrW(326) & ChrW(299)

然后,您可以在要翻译的字符串中测试这些字符。

编辑(附加信息):如果将字符串AccChars写入Excel单元格或其他可显示Unicode字符的对象(例如UserForm.TextBox),如果选择包含Unicode字符的字体,将会看到正确呈现的字符。