И здравствуйте! Обрабатывая отчеты из 1С, столкнулся с проблемой - функция КОДСИМВ() даёт значение, а СИМВОЛ() рисует по этому результату знак вопроса "?". В файле примере - символ "Ö" = код 63. Мало того, 1С-ник говорит, что при прямом сохранении этих символов по коду происходит то же самое. Понятно, что в екселе можно подстановками решить эту проблему. Вопрос: почему этот символ отображается не корректно? Будет ли проблема в VBA аналогичная 1С (не силен, к сожалению)? И если да, то возможно ли решение в VBA (чтобы по аналогии применить в 1С)?
И здравствуйте! Обрабатывая отчеты из 1С, столкнулся с проблемой - функция КОДСИМВ() даёт значение, а СИМВОЛ() рисует по этому результату знак вопроса "?". В файле примере - символ "Ö" = код 63. Мало того, 1С-ник говорит, что при прямом сохранении этих символов по коду происходит то же самое. Понятно, что в екселе можно подстановками решить эту проблему. Вопрос: почему этот символ отображается не корректно? Будет ли проблема в VBA аналогичная 1С (не силен, к сожалению)? И если да, то возможно ли решение в VBA (чтобы по аналогии применить в 1С)?pabchek
У Вас 3-й символ не входит в таблицу символов ascii - вот он и выдает код символа знака вопроса. Обойти можно используя UDF: [vba]
Код
'Для получения кода символа Function CH(s$) As Long CH = AscW(s) End Function 'Для получения символа по коду Function CHW(s#) As String CHW = ChrW(s) End Function
[/vba] Она возвращает коды символов и символы Юнико́да
У Вас 3-й символ не входит в таблицу символов ascii - вот он и выдает код символа знака вопроса. Обойти можно используя UDF: [vba]
Код
'Для получения кода символа Function CH(s$) As Long CH = AscW(s) End Function 'Для получения символа по коду Function CHW(s#) As String CHW = ChrW(s) End Function
[/vba] Она возвращает коды символов и символы Юнико́даSLAVICK
По этой причине существуют различные варианты кодировки ASCII, включающие знаки для разных языков.
Для русского - 214-й символ = "ц" , а в статье:
Цитата
таблица ASCII, называемая также ISO 8859-1, используется во многих программах для языков, распространенных в Северной Америке, Западной Европе, Австралии и Африке.
3-й символ не входит в стандартную таблицу (ASCII) символов - там их 256. - см. ссылку. В расширенной таблице (Unicode) символов их 65536
По этой причине существуют различные варианты кодировки ASCII, включающие знаки для разных языков.
Для русского - 214-й символ = "ц" , а в статье:
Цитата
таблица ASCII, называемая также ISO 8859-1, используется во многих программах для языков, распространенных в Северной Америке, Западной Европе, Австралии и Африке.
Нда, не сразу сообразил, что 214=00D6. И сразу все стало на свои места Таки спасибо! И... так понимаю, формулами вывести юникодовские символы... можно?
Нда, не сразу сообразил, что 214=00D6. И сразу все стало на свои места Таки спасибо! И... так понимаю, формулами вывести юникодовские символы... можно?pabchek
"Учиться, учиться и еще раз учиться!" WM: R399923528092