2013-02-18 112 views
4

我需要在Excel電子表格中將純ASCII替換爲Unicode字符。例如將Ståle轉換爲Stale。顯示Unicode字符:Excel 2010 vs Excel 2013

下面在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中

+1

也許作爲一個選項,這將是好的:http://www.asap-utilities.com/asap-utilities-excel-tools-tip.php?tip = 236&utilities = 78&lang = en_us – 2013-02-18 10:25:08

+0

StrConv依賴於默認代碼頁。我假設你在不同的計算機上嘗試這種方法。使用Excel 2010的計算機是否具有正確的代碼頁?將char_code轉換爲十六進制是更好的選擇嗎? – 2013-02-18 11:57:51

回答

2

更多的研究表明:

爲Excel 2010的MSGBOX控件不支持Unicode字符。 Excel 2013 MsgBox可以。

當字符插入到工作表單元格中時,Unicode非ASCII字符正常工作。只有使用MsgBox來顯示它時,問題是。好消息是該問題在Excel 2013中得到修復。More on the subject.

+0

顯示bug的+1) – 2013-02-18 13:02:01