Excel VBA 形状 TextFrame 字符 文本字符集
Excel VBA Shapes TextFrame Characters Text Charset
我将文本框插入到我的 Excel 2013 文档中并放入一些文本
正体字/繁体字
使用 UTF-8 符号
在文本框中它看起来不错但是当我尝试用命令
MsgBox ActiveSheet.Shapes("Textbox 1").TextFrame.Characters.Text
我得到了类似的东西
???/???
那么如何设置 UTF_8 字符集以正常获取 msgbox 或变量中的文本?
唯一的解决方法是创建一个表单并在标签中显示您的消息。我认为标签已启用 UTF-8。
您可以创建看起来像 MsgBox 和功能像 MsgBox 的东西,但可以更好地处理 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。 请注意,它有一个很好的内置机制来关闭消息。
我将文本框插入到我的 Excel 2013 文档中并放入一些文本
正体字/繁体字
使用 UTF-8 符号 在文本框中它看起来不错但是当我尝试用命令
MsgBox ActiveSheet.Shapes("Textbox 1").TextFrame.Characters.Text
我得到了类似的东西
???/???
那么如何设置 UTF_8 字符集以正常获取 msgbox 或变量中的文本?
唯一的解决方法是创建一个表单并在标签中显示您的消息。我认为标签已启用 UTF-8。
您可以创建看起来像 MsgBox 和功能像 MsgBox 的东西,但可以更好地处理 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。 请注意,它有一个很好的内置机制来关闭消息。