【问题标题】:VBA ListBox and ComboBox display wrong charactersVBA ListBox 和 ComboBox 显示错误字符
【发布时间】:2016-07-12 06:50:31
【问题描述】:

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"

这个解决方案很方便我的需要,问题现在已经结束了。

感谢您的回复。

【问题讨论】:

  • 请显示您用来填充这些控件的 VBA 代码。
  • 好的。谢谢,这里是代码: Private Sub UserForm_Initialize() NameTextBox.Value = "" PhoneTextBox.Value = "" CityListBox.Clear With CityListBox .AddItem "Vilnius" .AddItem "Kaunas" .AddItem "Klaipėda" .AddItem "Šiauliai"以 DinnerComboBox 结尾。以 DinnerComboBox 结尾。AddItem "Vegetarinis" .AddItem "Veganiškas" .AddItem "Savo" 结尾为
  • 您能否编辑您的问题并将其包含在内?在注释中粘贴代码在 StackOverflow 上效果不佳。

标签: excel vba character-encoding listbox


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-14
    • 1970-01-01
    • 1970-01-01
    • 2021-09-20
    相关资源
    最近更新 更多