我知道類似的問題之前已經被問過很多次,但是我發現的所有內容都是關於長達2個字節的字符。我需要:VBA:如何引用像回形針大Unicode字符?
MyString = ""
回形針是(U + 1F4CE)(http://www.fileformat.info/info/unicode/char/1f4ce/index.htm)和
ChrW(128206) 'throws an error
如何引用unicode字符超過2個字節長?
我知道類似的問題之前已經被問過很多次,但是我發現的所有內容都是關於長達2個字節的字符。我需要:VBA:如何引用像回形針大Unicode字符?
MyString = ""
回形針是(U + 1F4CE)(http://www.fileformat.info/info/unicode/char/1f4ce/index.htm)和
ChrW(128206) 'throws an error
如何引用unicode字符超過2個字節長?
這是一個工作,你的文本編輯器應該要照顧。我對VBA編輯器的記憶很朦朧,我不記得任何強制使用Excel 2013中的VBA編輯器快速嘗試源代碼文件的文本編碼的方式,這看起來非常不合時宜。它將utf-16代理對變成了兩個問號。
切換到另一個編輯器可以工作,記事本工作正常,例如,強制爲「Unicode」的另存爲對話框中的編碼設置。但是這很困難,當你繼續使用VBA編輯器進行編輯時,字符串會重新變形的可能性很高。解決方法是明確指定代理對。嘗試:
MyString = ChrW(&HD83D) & ChrW(&HDCCE)
谷歌「utf16代理對計算器」,如果你需要這樣做不止一次。
完美!我沒有試圖直接在編輯器中輸入特殊字符,因爲我發現它不可靠(有時會被新版本,不同的編輯器等損壞)。這只是解釋我想要做什麼的一種快速方法。 – Combinatix 2014-09-06 09:42:41
談到回形針 - 我可以使用它作爲命令按鈕,文本標籤,文本框的標題...我不能用它爲MsgBox - 它顯示「??」 (我正在使用MS Access 2010) – Combinatix 2014-09-06 09:19:21
嗯,奇怪,我猜測它使用MesssageBoxA()來顯示字符串,而不是Unicode版本MessageBoxW()。事故當然會*發生,你正在與25年的appcompat戰鬥:) – 2014-09-06 09:42:32