Excel VBA形成TextFrame字符文本字符集

我插入文本框到我的Excel 2013文档并放置一些文本

正体字/繁体字

与UTF-8符号在文本框中看起来不错,但是当我试图用命令msgbox它

MsgBox ActiveSheet.Shapes("Textbox 1").TextFrame.Characters.Text 

我有类似的东西

??? / ???

那么如何设置UTF_8字符​​集来正常取得这个文本在msgbox或variables?

你可以创build一个看起来像一个MsgBox,并像MsgBox一样的function ,但可以更好地处理UniCode:

 Public Declare Function MessageBoxU Lib "user32" Alias "MessageBoxW" _ (ByVal hwnd As Long, _ ByVal lpText As Long, _ ByVal lpCaption As Long, _ ByVal wType As Long) As Long Sub MsgBoxSubstitute() Dim s As String s = ChrW(8451) MessageBoxU 0, StrPtr(s), StrPtr("MsgBox Substitute"), 0 End Sub 

使用Windows API。 注意它有一个很好的内置机制来消除消息。

唯一的解决方法是创build一个表单并在标签中显示您的消息。 我认为标签是UTF-8启用。