Вот в этой теме Моя тема о проблеме поиска я описывал проблему с поиском и заменой с которой я столкнулся. А тут методом проб и ошибок выяснил, что проблемы эти начинаются сразу после того как воспользоваться любой функцией из раздела "Текст" надстройки Plex. Т.е. после любых манипуляций с текстом из надстройки прекращает работать поиск и замена, пока не закроешь полностью Excel и не откроешь его заново. Хотелось бы как то это исправить.
Решил проверить - скачал PLEX - не нашел раздел «Текст» (есть кнопка ТЕКСТ в разделе ЯЧЕЙКИ - я там что-то понажимал - но поиск у меня не перестал работать)
Punker, подскажите, что надо конкретно нажать в PLEX, чтобы увидеть проблему
Проблема заключается в том, что в диалоге поиска-замены Excel в полях 'Найти' и 'Заменить на' остаются значения, используемые ранее (надстройкой) VBА-функцией Replace. В коде Plex (на ленте раздел Ячейки, кнопка Текст) в форме frmText на вкладке 'Другое' по умолчанию установлено 'не показывать непечатаемые символы'. Достаточно вызвать форму и нажать OK, чтобы в коде выполнилась попытка замены с использованием Replace с указанным эффектом запоминания содержимого полей. В поле 'Найти' при этом останутся 2 символа, второй из которых с кодом 10 (новая строка) - невидим. И если в Excel в диалоге поиска замены ткнуть мышкой в поле 'Найти', удалить только один видимый символ ¶ и ввести что-то для поиска, то второй невидимый символ с кодом 10 останется в конце строки поиска и будет мешать. Аналогичная ситуация происходит и с полем 'Заменить на ', если выбрать в форме надстройки 'показать пробелы (•) и переносы (¶)'.
Решение проблемы
1. Для пользователей сейчас: в диалоге поиска-замены Excel нужно сначала очищать полностью. поля 'Найти' и 'Заменить на'. Это автоматически выполняется, если сразу вводить новый текст без тыканья в поле мышкой (или использования клавиш навигации со стрелками), т.к. при этом полностью затираются все символы старого значения. Можно очищать и с помощью Delete (нажимать 2 раза в описанном выше случае).
2. Для надстройки: в коде frmText в процедуре OKButton_Click последней строчкой достаточно записать DataRng(1).Replace What:="", Replacement:=""