Как заменить русские буквы на английские в excel
При запуске надстройки в Excel формируется панель инструментов, при помощи которой можно выполнять следующие действия:
- Нажатием кнопки RU->EN выполнить транслитерацию выделенного диапазона ячеек
- Нажатием кнопки EN->RU выполнить транслитерацию выделенного диапазона ячеек
- В выпадающем списке «Режим работы» можно переключить режим замены символов - второй пункт выпадающего списка «Коды символов» вместо транслита включает режим замены символов их кодамиAscW (и обратный режим замены кодо исходным текстом, используя вызов функции ChrW)
- Нажатием последних двух кнопок (галочка и крестик) можно управлять видимостью листа надстройки, на котором расположена таблица соответствия символов кириллицы и латиницы
- Самая левая кнопка (со значком дискеты) выполняет сохранение изменений в файле надстройки, и создание её резервной копии в специально созданной папке.
Особенности работы надстройки:
1) Все формулы в обрабатываемом диапазоне заменяются значениями.
2) производится замена ТЕКСТА ячейки, а не её ЗНАЧЕНИЯ.
Таким образом, если в ячейке была формула, возвращающая логическое значение 0 (в ячейке отображается текст FALSE или ЛОЖЬ), то после обработки этой ячейки в ней окажется текст LO^ZH`)
3) Обратная транслитерация корректно работает только в режиме «Коды символов» - причина в том, что если в исходном тексте присутствуют как символы кириллицы, так и символы латиницы, то после применения функции "транслит" все кириллические символы заменяются латиницей, а латиница не изменяется. При обратном преобразовании макрос не знает, какие символы обрабатываемой ячейки до преобразования были латиницей, а какие - кириллицей, - потому заменяет ВСЮ латиницу на кириллицу.
Разницу в результатах вижно на этом скриншоте
4) Функции транслита можно применять и в ячейках листа Excel, как любые другие UDF:
Используйте для этого формулы =Translit2EN($A2;1) и =Translit2RU(F2;1), если требуется преобразование текста в коды символов,
или же формулы =Translit2EN($A2) и =Translit2RU(F2), если нужен именно транслит и обратный транслит.
(второй параметр формулы для режима «транслит» равен нулю, его можно опустить - он используется по-умолчанию)
Пример использования формул можно посмотреть в прикреплённом к статье тестовом файле Excel.
5) В таблице соответствия символов латиницы и кириллицы не должно быть повторяющихся кодов
Сейчас используется примерно такая таблица соответствия:
Почему перед некотороми из символов добавлен символ "крышечка" - станет понятно после прочтения этой статьи
(чтобы исключить проблемы с обратной транслитерацией)
6) После обработки диапазона ячеек производится автоматическое копирование этого диапазона в буфер обмена
(аналогично нажатию комбинации клавиш Ctrl + C)
7) В связи с необходимостью копирования диапазона в буфер обмена (и последующей вставки в другую программу), была отключена функция обработки выделенных несмежных диапазонов.
8) Программа обрабатывает ячейки только в используемом диапазоне листа, независимо от того, какой диапазон выделен изначально.
Т.е. вы можете выделить столбец целиком - макрос автоматически уменьшит высоту выделенной области, чтобы ограничить обрабатываемый диапазон только используемыми ячейками.
9) Программа перебирает все ячейки в цикле - поэтому обработка может работать медленно при больших диапазонах обрабатываемых данных.
При необходимости макрос можно существенно ускорить, если обрабатывать не текст ячеек, а их значения.
Читайте также: