VBA ListBox和ComboBox显示错误的字符

时间:2016-07-12 06:50:32

标签: excel vba character-encoding listbox

Excel VBA ListBox和ComboBox显示错误的字符,而TextBox使用相同的UserForm提供正确的字符。

ListBox和ComboBox提供了一些Ansi替代而不是波罗的海字符,这是错误的。

我改变了:

  • 使用ListBox.Font.Charset属性从133到163的形式和列表框的字符集
  • 使用字体Arial或Times New Roman与波罗的海编码
  • 阅读互联网上的大量网页,但仍然没有运气..

感谢您的关注

我使用的代码如下:

Private Sub UserForm_Initialize()
UserForm2.Font.Charset = 186

ListBox1.List = Array("ĄČęėį", "Žųūįšų", 222) -> does not provide correct text :(

With ListBox1
.AddItem "Vilnius"
.AddItem "Kaunas"
.AddItem "Klaipėda"  -> Klaipëda
.AddItem "Šiauliai"  -> Ðiauliai
.AddItem Chr(222)
End With

最后看起来VBA编辑器在使用国际字符时遇到问题 - 如果通过“对象属性”窗口使用按钮标题 - 则会出错。

但是直接在表单上输入标签和按钮文本可以提供正确的结果,因此这里有一个解决方法 - 使用RowSource选项,从excel表中获取数据,它提供了正确的编码: ListBox1.RowSource =" = Sheet2!A1:A5"

此解决方案方便我的需要,现在问题已经解决。

感谢您的回复。

1 个答案:

答案 0 :(得分:1)

要使用正确的国际字符填充ListBox和ComboBox,我使用了Object Property窗口提供RowSource并从Excel表中获取数据。 在VBA编辑器中,它看起来像这样:ListBox1.RowSource =“= Sheet2!A1:A5” 这种方法适用于波罗的海和俄语,我没有尝试过其他语言。