VBA ListBox和ComboBox显示错误的字符

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了VBA ListBox和ComboBox显示错误的字符相关的知识,希望对你有一定的参考价值。

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

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

我改变了:

  • 使用ListBox.Font.Charset属性将form和listBox的字符集从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”

这个解决方案方便我的需求,现在问题已经关闭。

感谢您的答复。

答案

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

以上是关于VBA ListBox和ComboBox显示错误的字符的主要内容,如果未能解决你的问题,请参考以下文章

ListBox 内的 DataContext ComboBox 绑定

数据绑定到 List - 查看 ListBox、ComboBox 中数据源的变化

在 VBA 中显示 Me.ComBox.Value 和 Me.ComboBox.RowSource 属性的设置

wpf 界面中放了listbox想让他在最上层显示出来。

VBA中如何使用ListBox控件呢?

VBA - 变量获取 ComboBox 值,否则获取 TextBox 值错误