Выбрать дату в календареВыбрать дату в календаре

Страницы: 1
[VBA] Обработка символов с кодами больше 65535
 
sokol92,

результат положительный, все работает.
Еще раз благодарю. Выручили.
Правда, видимо не во всех версиях есть Unichar и Unicode, поскольку на одном из ноутов не заработало (в выпадающем списке после ввода Application.WorksheetFunction функции тоже отсутствуют). К сожалению, не посмотрел версию Экселя. На другом ноутбуке все ОК (Excel 2016).
[VBA] Обработка символов с кодами больше 65535
 
sokol92,
Благодарю за подсказку!
[VBA] Обработка символов с кодами больше 65535
 
sokol92,
спасибо за подсказку.

Да, я видел эти функции и они работают.
Однако меня больше интересует реализация в макросе, т.к. алгоритм в нем написан.
[VBA] Обработка символов с кодами больше 65535
 
bedvit, большое спасибо за ликбез и макрос!

Буду разбираться дальше.

Не думал, что простое извлечение символа из строки может вызывать такие трудности.
Правда, в макросах я не спец. До этого делал все простым методом.

Например, ячейка A1 содержит строку: abcde
Задача: записать в ячейку A2 i-й (пусть будет 3-й) символ из этой строки.

В макросе я просто писал что-то вроде:
Код
STRNG=Cells(1,1)
Cells(2,1)=Mid(STRNG,3,1)

В результате получал в ячейке A2 третий символ (т.е. c).

Но с вышеупомянутыми символами это не работает.

Может, действительно, ограничение функции Mid() и ей подобных...

Изменено: kanji - 26.02.2018 21:07:03
[VBA] Обработка символов с кодами больше 65535
 
Добрый день!

Прошу прощения если вопрос уже обсуждался.

Сейчас я работаю с базой данных китайских иероглифов в Excel и столкнулся с тем, что функции VBA типа Mid, ChrW и т.п. некорректно обрабатывают символы, код которых больше FFFF (65535). Среди иероглифов таких знаков предостаточно, поэтому это проблема. Хотелось бы узнать, есть ли способ обхода. Можно просто ссылку на решение, т.к. сам ничего полезного не нашел.

Например, имеется строка из трех символов: 䢂臘 Третий из них проблемный, т.к. имеет код 282E2 (164578). Поэтому функция mid() выдает на нем некорректный символ - в данном случае несуществующий.

Есть ли способ корректно вытащить третий символ с помощью макроса? Буду благодарен за любой совет.

P.S.: Форум не отображает третий символ в примере выше, поэтому просьба посмотреть в файле.
Изменено: kanji - 24.02.2018 08:31:37
Страницы: 1
Наверх