Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Страницы: 1
RSS
Замена "странных" символов
 
Доброго времени суток, Планетяне!

Не первый год довольно плотно работаю с Excel, но не перестаю удивляться разным "подводным камням" в выгрузках и при копипасте.
Столкнулся вот с какой "фишкой": при копипасте с сайта типоразмеров случайно заметил, что знак "×" - это не русская и не английская буква, а знак вопроса (см. скрин)
"Найти и Заменить" его находит и меняет, а, если действие этого инструмента записать макрорекордером и запустить, как макрос, то меняет все символы.

Макрорекордер: Selection.Replace What:="?", Replacement:="х", LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False

Как бороться?

UPD: найдено отличие в коде AscW: у странного символа он 215, а у вопроса такой же, как и Acs - 63 (см. скрин)
1.png (2.08 КБ)
2.png (1.26 КБ)
Изменено: Jack Famous - 19 Мар 2018 13:14:29
«Тот, кто несет фонарь, спотыкается чаще, чем тот, кто идет следом.»
Иоганн Пауль Фридрих Рихтер
 
Попробуйте What:="~?"
 
Hugo, попробовал сразу))) он тогда ищет знаки вопроса (а их типа нет) — не меняет

Интересно несколько моментов:
1.Почему инструмент меняет, а его код VBA — нет
2. Почему в VBA этот символ - как знак вопроса, а на листе нет (не шрифт - пробовал разные)
Изменено: Jack Famous - 5 Мар 2018 13:12:04
«Тот, кто несет фонарь, спотыкается чаще, чем тот, кто идет следом.»
Иоганн Пауль Фридрих Рихтер
 
Доброе время суток
Цитата
Jack Famous написал:
а его код VBA — нет
VBA как язык поддерживает Unicode, а вот его редактор - нет, от этого и проблема. Используйте
Код
What:=ChrW$(&H00D7)

Успехов.
Изменено: Андрей VG - 5 Мар 2018 13:15:54
 
Jack Famous, Вопрос то в чем, ведь не только первый год с экселем, так и не первый день на форуме. Боротся с чем? Ну у вас юникодный символ ×
используйте не "?", а ChrW(),  с соотвтевующим кодом.
 
Андрей VG, спасибо большое!

БМВ, Андрей VG, я нашёл отличие по коду AscW (обновил шапку), но как его перевести для ChrW?… Или как его вообще определить?
Изменено: Jack Famous - 5 Мар 2018 13:20:21
«Тот, кто несет фонарь, спотыкается чаще, чем тот, кто идет следом.»
Иоганн Пауль Фридрих Рихтер
 
Цитата
Jack Famous написал:
А как вы этот код для ChrW определили?
часто пользую ресурс, выручал неоднократно
https://unicode-table.com/ru/search/?q=%C3%97
 
БМВ, оооооо))) вот это вещь!))) спасибо!
«Тот, кто несет фонарь, спотыкается чаще, чем тот, кто идет следом.»
Иоганн Пауль Фридрих Рихтер
 
Цитата
Jack Famous написал:
но как его перевести для ChrW?
-
Код
ChrW(215)
:)
В Вашем файле у меня так заменяет.
А про "?" я в начале не понял - в файле их не увидел...
Изменено: Hugo - 5 Мар 2018 13:25:25
 
Hugo, спасибо вам! я уже тоже допёр методом перебора :D  ChrW(215) - работает. Получается, что, зная код AscW можно напрямую его точечно менять через ChrW  :D

Всем большое спасибо - буду сюда кидать различные "аномалии" ;)
Изменено: Jack Famous - 5 Мар 2018 13:29:54
«Тот, кто несет фонарь, спотыкается чаще, чем тот, кто идет следом.»
Иоганн Пауль Фридрих Рихтер
 
Ещё один такой же символ — Chr(63)/ChrW(180) — "´". Выглядит как умножение или апостороф…
Заменяется без проблем кодом VBA также, как предыдущий.
Изменено: Jack Famous - 19 Мар 2018 12:00:46
«Тот, кто несет фонарь, спотыкается чаще, чем тот, кто идет следом.»
Иоганн Пауль Фридрих Рихтер
Страницы: 1
Читают тему (гостей: 1)
Наверх