【发布时间】: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