Надстройка для транслитерации или кодирования (замены символов их кодами) выделенного диапазона ячеек ExcelПри запуске надстройки в Excel формируется панель инструментов, при помощи которой можно выполнять следующие действия:
Особенности работы надстройки:1) Все формулы в обрабатываемом диапазоне заменяются значениями. 2) производится замена ТЕКСТА ячейки, а не её ЗНАЧЕНИЯ. 3) Обратная транслитерация корректно работает только в режиме «Коды символов» - причина в том, что если в исходном тексте присутствуют как символы кириллицы, так и символы латиницы, то после применения функции "транслит" все кириллические символы заменяются латиницей, а латиница не изменяется. При обратном преобразовании макрос не знает, какие символы обрабатываемой ячейки до преобразования были латиницей, а какие - кириллицей, - потому заменяет ВСЮ латиницу на кириллицу. Разницу в результатах вижно на этом скриншоте 4) Функции транслита можно применять и в ячейках листа Excel, как любые другие UDF: Используйте для этого формулы =Translit2EN($A2;1) и =Translit2RU(F2;1), если требуется преобразование текста в коды символов, или же формулы =Translit2EN($A2) и =Translit2RU(F2), если нужен именно транслит и обратный транслит. (второй параметр формулы для режима «транслит» равен нулю, его можно опустить - он используется по-умолчанию) Пример использования формул можно посмотреть в прикреплённом к статье тестовом файле Excel. 5) В таблице соответствия символов латиницы и кириллицы не должно быть повторяющихся кодов Сейчас используется примерно такая таблица соответствия:
Почему перед некотороми из символов добавлен символ "крышечка" - станет понятно после прочтения этой статьи (чтобы исключить проблемы с обратной транслитерацией) 6) После обработки диапазона ячеек производится автоматическое копирование этого диапазона в буфер обмена 7) В связи с необходимостью копирования диапазона в буфер обмена (и последующей вставки в другую программу), была отключена функция обработки выделенных несмежных диапазонов. 8) Программа обрабатывает ячейки только в используемом диапазоне листа, независимо от того, какой диапазон выделен изначально. Т.е. вы можете выделить столбец целиком - макрос автоматически уменьшит высоту выделенной области, чтобы ограничить обрабатываемый диапазон только используемыми ячейками. 9) Программа перебирает все ячейки в цикле - поэтому обработка может работать медленно при больших диапазонах обрабатываемых данных. При необходимости макрос можно существенно ускорить, если обрабатывать не текст ячеек, а их значения.
|
|||||||||



Комментарии
Спасибо огромное! Работает на УРА только нужно под свои нужды немного допиливать - естественно, так держать !!!
Отправить комментарий