У меня возникла странная проблема.
Я присвоил строковое значение списку со списком, в котором есть символ Юникода. В моем случае это треугольники вверх / вниз (ChrW(&H25B2)
= ▲ & ChrW(&H25BC)
= ▼) для обозначения ASC / DESC желаемой сортировки данных.
Теперь проблема в том, что Excel успешно отображает символ Юникода в поле со списком, только когда элемент управления активен (когда я выбираю или нажимаю на него). НО, когда я щелкаю в сторону от элемента управления или меняю фокус, на нем появляется вопросительный знак (?), Как будто я пытаюсь отобразить неизвестный символ. Персонаж всегда отображается правильно внутри ячейки, но не в поле со списком. Я думал, что, возможно, два разных шрифта отображаются в зависимости от активного состояния, но это не было установлено, и я не вижу никакой возможности для этого в свойствах. Я также попробовал десятичный метод для добавления символов (ChrW(9660)
& ChrW(9650)
), на всякий случай, но это ничего не изменило
Что здесь происходит? Как можно, чтобы ▲ & ▼ всегда отображались правильно.
РЕДАКТИРОВАТЬ: Узнав, что элементы управления VBA ограничены символами ANSI и не могут отображать символы Юникода, есть ли способ отобразить треугольники так, как я хочу, несмотря на то, что в наборе символов ANSI нет треугольников или стрелок вверх / вниз?
См. Код и изображение ниже, чтобы понять, что я имею в виду.
![enter image description here](https://i.stack.imgur.com/ysWfu.png)
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