Excel 2010与Excel 2013中如何显示Unicode字符

4

我需要在Excel电子表格中将普通ASCII字符替换为Unicode字符。例如,将Ståle转换为Stale。

以下内容在Excel 2013中可以正常工作。但是,在Excel 2010中,问题字符显示为"?"。有什么想法吗?请注意,Excel 2010正确检测到非Ascii字符,但字符未显示。

char = Mid(val, i, 1)
char_code = AscW(char)
If char_code > 127 Then
  MsgBox ("Problem with " & c.Address & " [" & char_code & "] " &
    StrConv(ChrW(char_code), vbUnicode))
End If

我也尝试了仅仅是:

MsgBox ("Problem with " & char & " " & ChrW(char_code))

再次测试,它可以在Excel 2013中运行,但在Excel 2010中无法运行。


StrConv 依赖于默认代码页。我猜你正在尝试在不同的计算机上运行此程序。拥有 Excel 2010 的计算机是否具有正确的代码页?将 char_code 转换为十六进制是否是更好的选择? - Tony Dallimore
1个回答

2

更多的研究表明:

Excel 2010中的MsgBox控件不支持Unicode字符,而Excel 2013的MsgBox则支持。

当把Unicode非ASCII字符插入到工作表单元格时,它能正常工作。问题只出现在使用MsgBox显示它时。好消息是这个问题在Excel 2013中已被修复。 了解更多相关信息。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接