Excel ComboBox /控件文本在活动时不显示/识别特殊字符,但在不活动时显示/识别特殊字符

时间:2018-10-29 19:44:19

标签: excel vba excel-vba

我遇到了一个奇怪的问题。

我已将一个字符串值分配给包含Unicode字符的组合框列表。在我的情况下,它们是向上/向下的三角形(ChrW(&H25B2) =▲&ChrW(&H25BC) =▼),表示所需数据类型的ASC / DESC。

现在,问题在于,仅当控件处于活动状态时(当我选择或单击它时),Excel才会在组合框中成功显示Unicode字符。但是,当我单击鼠标左键或更改焦点时,它会显示一个问号(?),就好像我试图显示一个未知字符一样。字符始终正确显示在单元格中,而不是组合框。我在想,可能会根据活动状态显示两种不同的字体,但是尚未设置,因此我在属性中看不到任何选项。我还尝试了十进制方法来添加字符(ChrW(9660)ChrW(9650),以防万一,但这并没有改变

这是怎么回事? ▲和▼如何始终正确显示。

编辑:了解到VBA控件仅限于ANSI字符,并且无法显示Unicode字符,尽管ANSI在其字符集中没有三角形或向上/向下箭头,但是有没有办法显示我想要的三角形?

请参见下面的代码和图像,以了解我的意思。

enter image description here

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

0 个答案:

没有答案