Word VBA: Замена неправильного дефиса

Автор Anton, 29 августа 2016, 12:56

Посетитель 29.10.2022

Найти заменить лего. Просто как узнать какие символы которые больше чем 65535, Символы свыше 65535являются суррогатными и состоят из двух подряд идущих символов. Вот как узнать эти пары символов для тех что больше 65536. Каждый символ конечно можно через найти заменить определить. А вот как то все сразу узнать вариант которые до 65536  вот вариант
For u = 1 To 65535
Символ_цифрового_ANSI_кода = ChrW(u)
Selection.TypeText Text:=u & " " & Символ_цифрового_ANSI_кода
Selection.TypeParagraph 'вставить абзац, то есть параграф
а вот есть что то как узнать какие пары идут после 65535
Может можно как то автоматизировать вот такой вариант.
Alt+65537 дает
Selection.TypeText Text:=ChrW(55617) & ChrW(57324)
Alt+65538 дает
Selection.TypeText Text:=ChrW(55296) & ChrW(56322)
ну и так до Alt+917997

Администратор

В каком коде вы планируете использовать ChrW? Напишите код, который у вас не работает.

Посетитель 29.10.2022

Вот так ошибка
For u = 65537 To 917997
Символ_цифрового_ANSI_кода = ChrW(u)
Selection.TypeText Text:=u & " " & Символ_цифрового_ANSI_кода
Selection.TypeParagraph 'вставить абзац, то есть параграф

Администратор

Не смогу помочь по этому вопросу, такие нюансы я не знаю про юникод-коды.
Если мне нужен символ ChrW(-10114), я его так и вставлю ChrW(-10114). Ворд это позволяет сделать.
Почему VBA даёт такой юникод, я не знаю и не задумываюсь над этим. Нет возможности в это вникать. Посмотрите в интернете статьи, может обсуждалось это.

Посетитель 29.10.2022

Здравствуйте Администратор. Как с Вами связаться? На почту нет ответа