Как вводить символы валюты в редакторе Visual Basic

Существует требование проекта, в котором нам нужно проверить ячейку на ее тип валюты.

Я столкнулся с аналогичным вопросом на этом форуме (Как проверить, ячейка отформатирована как Валюта?). В нем объясняется, как это сделать для символа $. Но я не мог заменить символ $ другими символами валюты (например, индийской рупией, евро и т. д.) в редакторе Visual Basic. Чтобы иметь другие символы в VBE, я пробовал следующее:

  • Вставил символ в Excel с помощью опции Вставка->Символ.
  • Скопируйте и вставьте символ в VBE.

Но он вставлен как ? в VBE.

Пожалуйста, помогите мне иметь символы валюты в VBE. Если это невозможно, предложите способ определения типа валюты ячейки.


person Kannan    schedule 24.06.2014    source источник


Ответы (2)


Редактор VBA не поддерживает Unicode.

Чтобы в нем были символы Юникода, вам нужно использовать ChrW$, например.

Dim Rupee As String
Rupee = ChrW$(&h20A8&)

Также см. строковые литералы Unicode в VBA.

person GSerg    schedule 12.08.2014
comment
Можете ли вы объяснить, почему это не кажется универсальным ответом на ввод символов Unicode? На моей машине это отлично работает с символом Rs, но затем я попробовал метрическое сокращение 23D1 из технического блока «Разное», и Word (NB Word 2007) вместо этого выдает глупое сообщение «не может представлять это поле». - person mike rodent; 30.05.2021
comment
@mikerodent У вас есть шрифт с этим символом? - person GSerg; 30.05.2021
comment
А, теперь понял... да, такой шрифт, как MS Mincho, способен отобразить нужный символ. Таким образом, похоже, вопрос в том, на что способны шрифты и на что они не способны... - person mike rodent; 30.05.2021

У меня есть улучшенная версия для ответа ... используйте следующий код для выбора символа индийской рупии в формате лакхов крор, независимо от ваших региональных настроек в формате миллионов.

Dim rs As String
rs = ChrW$(&H20B9&)
Selection.NumberFormat = "[>=10000000][$" & rs & "-ta-IN] ##\,##\,##\,##0.00;[>=100000][$" & rs & "-ta-IN] ##\,##\,##0.00;[$" & rs & "-ta-IN] ##,##0.00"

Надеюсь это поможет.

person Satheesh K    schedule 14.05.2018