Текст ComboBox / Control Excel не показывает / распознает специальные символы, когда активен, но делает, когда неактивен - PullRequest
0 голосов
/ 29 октября 2018

У меня возникла странная проблема.

Я присвоил строковое значение списку со списком, в котором есть символ Юникода. В моем случае это треугольники вверх / вниз (ChrW(&H25B2) = ▲ & ChrW(&H25BC) = ▼) для обозначения ASC / DESC желаемой сортировки данных.

Теперь проблема в том, что Excel успешно отображает символ Юникода в поле со списком, только когда элемент управления активен (когда я выбираю или нажимаю на него). НО, когда я щелкаю в сторону от элемента управления или меняю фокус, на нем появляется вопросительный знак (?), Как будто я пытаюсь отобразить неизвестный символ. Персонаж всегда отображается правильно внутри ячейки, но не в поле со списком. Я думал, что, возможно, два разных шрифта отображаются в зависимости от активного состояния, но это не было установлено, и я не вижу никакой возможности для этого в свойствах. Я также попробовал десятичный метод для добавления символов (ChrW(9660) & ChrW(9650)), на всякий случай, но это ничего не изменило

Что здесь происходит? Как можно, чтобы ▲ & ▼ всегда отображались правильно.

РЕДАКТИРОВАТЬ: Узнав, что элементы управления VBA ограничены символами ANSI и не могут отображать символы Юникода, есть ли способ отобразить треугольники так, как я хочу, несмотря на то, что в наборе символов 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...