我遇到了一个奇怪的问题。
我已将一个字符串值分配给包含Unicode字符的组合框列表。在我的情况下,它们是向上/向下的三角形(ChrW(&H25B2)
=▲&ChrW(&H25BC)
=▼),表示所需数据类型的ASC / DESC。
现在,问题在于,仅当控件处于活动状态时(当我选择或单击它时),Excel才会在组合框中成功显示Unicode字符。但是,当我单击鼠标左键或更改焦点时,它会显示一个问号(?),就好像我试图显示一个未知字符一样。字符始终正确显示在单元格中,而不是组合框。我在想,可能会根据活动状态显示两种不同的字体,但是尚未设置,因此我在属性中看不到任何选项。我还尝试了十进制方法来添加字符(ChrW(9660)
和ChrW(9650)
,以防万一,但这并没有改变
这是怎么回事? ▲和▼如何始终正确显示。
编辑:了解到VBA控件仅限于ANSI字符,并且无法显示Unicode字符,尽管ANSI在其字符集中没有三角形或向上/向下箭头,但是有没有办法显示我想要的三角形?
请参见下面的代码和图像,以了解我的意思。
Sub PopulateSortList()
'Populate Sort Dropdown control
With Sheet1.ComboBox_Sort
.Clear
.AddItem "Time - IN " & ChrW(&H25B2) 'Ascending
.AddItem "Time - IN " & ChrW(&H25BC) 'Decending
.AddItem "Time - OUT " & ChrW(&H25B2) 'Ascending
.AddItem "Time - OUT " & ChrW(&H25BC) 'Decending
.Font.Size = 11
.TextAlign = fmTextAlignLeft
.SelectionMargin = False
.ListIndex = 1
End With
End Sub