Автоматическая транслитерация для excel

  • Формула транслита с помощью стандартных функций Excel
    • Формула на 64 уровня вложенности без заглавных Ъ и Ь
    • Скачать файл-шаблон с транслитерацией
    • Формулы транслита, итоги
  • Функция на VBA
  • Заменить русские буквы на английские в Excel и наоборот
Пример результата транслитерации в Excel

Как перевести кириллицу в транслит в Excel?

Технически транслитерация — это замена по списку значений — символов на определенные их эквиваленты в другой раскладке. Значит, и задача состоит в том, чтобы в Excel осуществить эту серию замен.

Удивительно, но сделать такую массовую замену и транслитерировать текст в Excel можно множеством способов. Обо всех подробнее далее.

Наименее изящное, тем не менее, самое простое решение задачи. В Excel для замены символов есть функция ПОДСТАВИТЬ (англ. SUBSTITUTE). Формула принимает на вход 4 аргумента:

  1. Текст для обработки, в котором будет производиться замена (текст);
  2. Заменяемый фрагмент (стар_текст);
  3. На что заменить (нов_текст);
  4. Какой по счету встреченный в значении фрагмент заменить. (номер_вхождения).
Синтаксис Excel формулы ПОДСТАВИТЬ

Четвертый параметр является опциональным и, если он не заполнен, заменяются все встреченные в тексте фрагменты.

Как раз то, что нам нужно! Поскольку Excel позволяет составлять сложные вложенные функции, мы можем сделать эту серию замен в одной много раз вложенной формуле.

Но есть несколько проблем, которые в сочетании не дают возможность сделать идеальную единую формулу транслита. Вот они:

  • В русском алфавите 33 буквы.
  • Идеальная формула транслита должна сохранять при замене регистр символов. Благо, функция “ПОДСТАВИТЬ” — регистрозависимая. Получается, что нужно делать не 33, а 66 замен. Но
  • в Excel есть ограничение количества уровней вложенности в одной формуле — 64.

Будь в русском алфавите хотя бы на одну букву меньше, мы бы уложились в ограничения Excel. Есть ли решение? Да, довольно простое.

Формула на 64 уровня вложенности без заглавных Ъ и Ь

Как правило, заглавные буквы в словах бывают, если это начало слова. Или если это аббревиатура, но аббревиатуры тоже составляются из первых букв слов.

А вы знаете слова, начинающиеся с Ъ или Ь? :)

Кажется, их можно пропустить. Так мы экономим два уровня вложенности и укладываемся в лимиты Excel (66 – 2 = 64)!

Важно также учитывать, что при транслитерации заглавных букв Ж, Ш, Ч, Щ и т.д., когда английский эквивалент состоит из нескольких букв, заглавной на латинице должна быть только первая. Интернет полон решениями, где этот момент не учтен. Итак, вот наиболее полная корректная формула:

=ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(
ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(
ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(
ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(
ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(
ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(
ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(
ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(
A1;
"А";"A");"Б";"B");"В";"V");"Г";"G");"Д";"D");"Е";"E");"Ё";"Yo");"Ж";"Zh");"З";"Z");"И";"I");"Й";"Y");
"К";"K");"Л";"L");"М";"M");"Н";"N");"О";"O");"П";"P");"Р";"R");"С";"S");"Т";"T");"У";"U");"Ф";"F");
"Х";"Kh");"Ц";"Ts");"Ч";"Ch");"Ш";"Sh");"Щ";"Sch");"Ы";"Y");"Э";"E");"Ю";"Yu");"Я";"Ya");"а";"a");
"б";"b");"в";"v");"г";"g");"д";"d");"е";"e");"ё";"yo");"ж";"zh");"з";"z");"и";"i");"й";"y");"к";"k");
"л";"l");"м";"m");"н";"n");"о";"o");"п";"p");"р";"r");"с";"s");"т";"t");"у";"u");"ф";"f");"х";"kh");
"ц";"ts");"ч";"ch");"ш";"sh");"щ";"sch");"ъ";"y");"ы";"y");"ь";"");"э";"e");"ю";"yu");"я";"ya")

Скачать файл-шаблон с транслитерацией

Формула выше на основе функции ПОДСТАВИТЬ с несколькими условиями может быть видоизменена – вместо явного прописывания текстовых значений, можно сделать ее на основе конкретных ячеек. Чем удобнее такой подход? Тем, что формулу менять не нужно, а данные для замены представлены в удобном для восприятия и редактирования формате в столбцах A и B.

Транслитерация с помощью таблицы замен и формулы с 64 уровнями вложенности

Транслитерация с помощью таблицы замен и формулы с 64 уровнями вложенности

По ссылке можно скачать файл-шаблон, в котором применены эти функции.

Формулы транслита, итоги

У подхода с созданием таких мега формул есть свои плюсы и минусы. Минус один – они громоздки и такое не так-то просто сходу набрать. Поэтому их нужно где-то хранить и копировать при необходимости.

Плюсы в основном происходят из недостатков VBA-кода:

  • Формулы листа железно сработают в любой версии Excel на любом компьютере, даже с самыми жесткими политиками защиты данных.
  • Они легко изменяются, если нужно переделать правила транслитерации, и довольно просты.
  • Транспортабельны, т.е. формулы не “слетят”, если их отправить кому-либо и открыть на другом компьютере.

Функция на VBA

Код пользовательской функции, которая транслитерирует строчные в строчные, а заглавные – в заглавные, и при этом транслитерирует заглавные буквы Ж, Ш, Х, Ч, Щ и подобные, делая в транслите заглавной только первую букву (Zh, Sh, Kh, Ch, Sch…).

Точь-в-точь эта функция присутствует в надстройке !SEMTools и доступна всем желающим – нужно только скачать и установить !SEMTools. Далее функцию можно применять как обычную функцию Excel на листе. Например, =Translit(A1)

Function Translit(x As String) As String
    cyr = "абвгдеёжзийклмнопрстуфхцчшщъыьэюя"
    lat = Array("", "a", "b", "v", "g", "d", "e", "e", "zh", "z", "i", "y", "k", _
        "l", "m", "n", "o", "p", "r", "s", "t", "u", "f", "kh", "ts", "ch", _
        "sh", "sch", "y", "y", "", "e", "yu", "ya")
    For i = 1 To 33
        x = Replace(x, Mid(cyr, i, 1), lat(i), , , vbBinaryCompare)
        x = Replace(x, UCase(Mid(cyr, i, 1)), StrConv(lat(i), vbProperCase), , , vbBinaryCompare)
    Next
    Translit = x
End Function

Заменить русские буквы на английские в Excel и наоборот

Надстройка !SEMTools предлагает помимо основного еще 4 варианта замены:

  1. Обратный транслит (из латиницы в кириллицу);
  2. “Смена раскладки” – asdf -> фыва;
  3. Замена букв с идентичным начертанием — кириллица в латиницу;
  4. Аналогичная замена английских букв, похожих на русские, на действительно русские.

Последние два пункта тесно связаны с ситуациями, когда удалось найти русские слова, содержащие латиницу или английские слова с кириллическими символами, и теперь нужно исправить такой текст.

Чтобы произвести транслитерацию, достаточно просто выделить столбец с данными и вызвать нужную процедуру. Данные изменятся на месте.

Транслитерация в !SEMTools

Нужно сделать транслитерацию русского на латиницу в Excel или наоборот?
Быстро решить эту и более 500 других задач поможет надстройка !SEMTools.

Транслитерация в excel довольно распространенная задача. Сделать транслит в Excel — значит, русские буквы превратить в английские или латинские

Часто неопытные пользователи делают транслитерацию в excel вручную, а более опытные используют многоэтажные формулы с подстановкой значений.

В этой статье мы научимся создавать небольшую пользовательскую функцию, которая умеет делать транслитерацию в Excel. В данном случае не нужно знать VBA, поскольку текст функции есть в статье, его можно просто скопировать.

Видео для тех, кто не любит читать

Итак, у нас есть таблица с ФИО сотрудников. Нужно сделать транслитерацию этих данных.

транслитерация в excel

1. Нажмем клавиши Alt + F11, чтобы перейти в редактор Visual Basic

2. В окне редактора Visual Basic перейдем в меню InsertModule

транслитерация в excel

3. Выделите следующий текст функции, скопируйте его (Ctrl + C) и вставьте в пустое окно модуля (Ctrl + V)

Function Translit(Txt As String) As String

 Dim Rus As Variant

 Rus = Array(«а», «б», «в», «г», «д», «е», «ё», «ж», «з», «и», «й», «к», _

 «л», «м», «н», «о», «п», «р», «с», «т», «у», «ф», «х», «ц», «ч», «ш», _

 «щ», «ъ», «ы», «ь», «э», «ю», «я», «А», «Б», «В», «Г», «Д», «Е», _

 «Ё», «Ж», «З», «И», «Й», «К», «Л», «М», «Н», «О», «П», «Р», _

 «С», «Т», «У», «Ф», «Х», «Ц», «Ч», «Ш», «Щ», «Ъ», «Ы», «Ь», «Э», «Ю», «Я»)

 Dim Eng As Variant

 Eng = Array(«a», «b», «v», «g», «d», «e», «jo», «zh», «z», «i», «j», _

 «k», «l», «m», «n», «o», «p», «r», «s», «t», «u», «f», «kh», «ts», «ch», _

 «sh», «sch», «»», «y», «‘», «e», «yu», «ya», «A», «B», «V», «G», «D», _

 «E», «JO», «ZH», «Z», «I», «J», «K», «L», «M», «N», «O», «P», «R», _

 «S», «T», «U», «F», «KH», «TS», «CH», «SH», «SCH», «»», «Y», «‘», «E», «YU», «YA»)

 For I = 1 To Len(Txt)

 с = Mid(Txt, I, 1)

 flag = 0

 For J = 0 To 65

 If Rus(J) = с Then

outchr = Eng(J)

 flag = 1

 Exit For

 End If

 Next J

 If flag Then outstr = outstr & outchr Else outstr = outstr & с

 Next I

 Translit = outstr

End Function

Обратите внимание, что в этом макросе знаки русского алфавита заменяются латиницей согласно ГОСТу. Если вам нужно, чтобы буквы заменялись иначе, измените их внутри макроса.

4. Закройте редактор Visual Basic. Данные сохранятся в нем автоматически.

5. Теперь установите курсор в первую ячейку, в которой нужно сделать транслитерацию. 

6. Перейдите на вкладку меню ФормулыВставить функцию.

транслитерация в excel

7. В выпадающем списке Категория выберите Определенные пользователем.

транслитерация в excel

8. Созданная для транслитерации функция называется Translit. Выделите ее и нажмите Ок.

транслитерация в excel

9. Установив курсор в поле Txt, щелкните по первой ячейке, для которой нужно сделать транслитерацию. Нажмите Ок.

транслитерация в excel

10. Скопируйте формулу до конца списка, потянув за нижний правый уголок выделенной ячейки. Транслитерация в Excel готова.

транслитерация в excel

Теперь транслитерация ячеек excel будет производиться макросом автоматически, достаточно указать или вызвать формулу =Translit(). Это удобно, если у вас большой список слов для транслитерации и вручную сделать это сложно. 


   Сообщество Excel Analytics | обучение Excel

    Канал на Яндекс.Дзен 

Транслит

Если Вам часто приходится переводить кириллицу в транслит (а попробуйте-ка сделать это для фамилии «Кржижановский», например), то эта функция — для Вас.

Откройте редактор Visual Basic (Alt+F11), вставьте через меню новый пустой программный модуль (Insert — Module) и скопируйте туда текст этой функции:

Function Translit(Txt As String) As String

    Dim Rus As Variant
    Rus = Array("а", "б", "в", "г", "д", "е", "ё", "ж", "з", "и", "й", "к", _
    "л", "м", "н", "о", "п", "р", "с", "т", "у", "ф", "х", "ц", "ч", "ш", _
    "щ", "ъ", "ы", "ь", "э", "ю", "я", "А", "Б", "В", "Г", "Д", "Е", _
    "Ё", "Ж", "З", "И", "Й", "К", "Л", "М", "Н", "О", "П", "Р", _
    "С", "Т", "У", "Ф", "Х", "Ц", "Ч", "Ш", "Щ", "Ъ", "Ы", "Ь", "Э", "Ю", "Я")

    Dim Eng As Variant
    Eng = Array("a", "b", "v", "g", "d", "e", "jo", "zh", "z", "i", "j", _
    "k", "l", "m", "n", "o", "p", "r", "s", "t", "u", "f", "kh", "ts", "ch", _
    "sh", "sch", "''", "y", "'", "e", "yu", "ya", "A", "B", "V", "G", "D", _
    "E", "JO", "ZH", "Z", "I", "J", "K", "L", "M", "N", "O", "P", "R", _
    "S", "T", "U", "F", "KH", "TS", "CH", "SH", "SCH", "''", "Y", "'", "E", "YU", "YA")
    
    For I = 1 To Len(Txt)
        с = Mid(Txt, I, 1)
    
        flag = 0
        For J = 0 To 65
            If Rus(J) = с Then
                outchr = Eng(J)
                flag = 1
                Exit For
            End If
        Next J
        If flag Then outstr = outstr & outchr Else outstr = outstr & с
    Next I
    
    Translit = outstr
    
End Function

Теперь на любом листе этой книги Вы можете использовать эту функцию, вставив ее через Мастер Функций:

  • в Excel 2003 и старше — через меню Вставка — Функция (Insert — Function)

  • в Excel 2007 и новее — через вкладку Вставка — Функция (Insert — Function)

 из категории Определенные пользователем (User defined):

translit.gif

В этом макросе варианты замены русских букв английскими эквивалентами представлены согласно ГОСТ. Если для вашей задачи нужны другие версии (например, русская «я» должна выводиться как «ja», а не как «ya» и т.д.), то можно свободно подкорректировать это в теле макроса. Как легко догадаться, два первых массива Rus и Eng как раз и кодируют эти подстановки.

Для новых версий Excel 2007-2010 и т.д. не забудьте сохранить вашу книгу как файл с поддержкой макросов (Macro Enabled Workbook), т.е. в формате XLSM.

Ссылки по теме

  • Макрос-переводчик
  • Преобразование русского текста в транслит с помощью надстройки PLEX

Очень часто требуется преобразовать русский текст (кириллицу) в английский (транслит), не перевести, а написать русские слова английскими буквами.

Такое, например, может понадобиться для импорта данных в какую-нибудь программу, базу данных, которая не поддерживает русские буквы. Задача распространенная, но стандартными средствами Excel не решается.

как преобразовать английй текст в транслит в Excel

Мы предлагаем вам два варианта решения данной задачи.

Содержание

  • 1 Первый способ транслитерировать русский текст
  • 2 Второй способ перевода русского текста в транслит в Excel с помощью пользовательской функции

Первый способ транслитерировать русский текст

Первый способ транслита русского текста достаточно топорный — с использованием приложения Punto Switcher от Яндекс.

Скачиваем программу Punto Switcher на официальном сайте: http://punto.yandex.ru/

Punto Switcher — программа, которая автоматически переключает раскладку клавиатуры. Она знает, что «ghbdtn» — это «привет», а «пщщв ьщктштп» — это «good morning». 

Так вот, данная программа, помимо своей основной функции можете переводить текст в транслит, менять регистр выделенного текста (сделать из «иванов» в «ИВАНОВ») и другое.

Устанавливаем программу себе на компьютер, в системном трее должен появится значок программы

punto-switcher

Если зайти в настройки (правой кнопкой мыши по значку, выбрать настройки, горячие клавиши), то можно увидеть, что по умолчанию установлено переводить текст в транслит с помощью горячих клавиш Alt+Scroll Lock

Горячие клавиши в Punto Switcher

К сожалению, в самом Excel программа транслитерировать текст не сможет, необходимо промежуточное действие. Копируем столбец с русскими буквами, открываем блокнот на компьютере (Notepad) и вставляем туда текст, далее выделяем текст в блокноте и нажимаем клавиши Alt+Scroll Lock, текст автоматически поменяется на транслит.

Далее вы просто копируете этот текст и вставляете обратно в Excel.

Это удобно если нужно например перевести в translit, например один объемный столбец данных на русском языке, но иногда преобразование текста в транслит требуется с помощью формул Excel, поэтому рассмотрим второй способ с использованием пользовательской функции Excel, написанной на VBA

Второй способ перевода русского текста в транслит в Excel с помощью пользовательской функции

Есть специальный макрос для создания пользовательской функции.

Function Translit(Txt As String) As String

 Dim Rus As Variant
 Rus = Array("а", "б", "в", "г", "д", "е", "ё", "ж", "з", "и", "й", "к", _
 "л", "м", "н", "о", "п", "р", "с", "т", "у", "ф", "х", "ц", "ч", "ш", _
 "щ", "ъ", "ы", "ь", "э", "ю", "я", "А", "Б", "В", "Г", "Д", "Е", _
 "Ё", "Ж", "З", "И", "Й", "К", "Л", "М", "Н", "О", "П", "Р", _
 "С", "Т", "У", "Ф", "Х", "Ц", "Ч", "Ш", "Щ", "Ъ", "Ы", "Ь", "Э", "Ю", "Я")

 Dim Eng As Variant
 Eng = Array("a", "b", "v", "g", "d", "e", "jo", "zh", "z", "i", "j", _
 "k", "l", "m", "n", "o", "p", "r", "s", "t", "u", "f", "kh", "ts", "ch", _
 "sh", "sch", "''", "y", "'", "e", "yu", "ya", "A", "B", "V", "G", "D", _
 "E", "JO", "ZH", "Z", "I", "J", "K", "L", "M", "N", "O", "P", "R", _
 "S", "T", "U", "F", "KH", "TS", "CH", "SH", "SCH", "''", "Y", "'", "E", "YU", "YA")

 For I = 1 To Len(Txt)
 с = Mid(Txt, I, 1)

 flag = 0
 For J = 0 To 65
 If Rus(J) = с Then
 outchr = Eng(J)
 flag = 1
 Exit For
 End If
 Next J
If flag Then outstr = outstr & outchr Else outstr = outstr & с
 Next I

 Translit = outstr

End Function

Переключите раскладку на русский язык!! Копируем данный код, открываем среду VBA, для это нажмите правой кнопкой на активный лист и выберите пункт «Исходные данные«, либо нажмите Alt+F11 далее через меню выберите новый программный модуль (Insert — Module)

Открываем среду VBA для вставки кода

и в открывшееся окно вставляете данный код и закрываете это окно.

После этого в любом месте данного листа (а при вставке кода с помощью Insert — Module — в любом месте данной книги) вы сможете использовать пользовательскую функцию, которую можно вызвать выбрав:

Вставка — Функция (Insert — Function)

в Excel 2013 Функция — Вставить функцию

Выбираем Категория: определенные пользователем, в данном списке должна появится наша функция Translit

функция транслит

Можно просто в нужной ячейке набрать =Transit(ссылка_на_русский_текст) 

Как преобразовать тект в транслит - функция Excel

После этого протягиваем формулу и получаем нужный нам результат.

Если вы присмотритесь в полученный результат, то увидите, что данные немного отличаются, например

Ivanov Sergej Petrovich и Ivanov Sergey Petrovich

то есть буква «й» преобразовалась по-разному, если для вас это критично, то нужно будет немного поменять указанный выше код. В коде есть две таблицы — одна на русском языке, другая латиницей. Не трудно догадаться, что вам необходимо поменять нужные вам буквы. В данном случае в коде нужно найти «j» и поменять на «y», если требуется, то по аналогии поступаем с другими буквам.

Важно!

  • Начиная с Excel 2007 не забудьте сохранить файл в формате поддержки макросов — xlsm, иначе макрос не сохранится;
  • Данный макрос необходимо вставлять в каждую отдельную книгу, в которой вы хотите, чтобы он работал;
  • Иногда требуется, чтобы была не встроенная функция, а макрос при запуске которого текст будет переводится в транслит, в этом случае нужно вставить код, указанный ниже. В итоге, для перевода текста в transit необходимо выделить нужный текст на русском языке (диапазон ячеек) и запустить макрос «Translit» и данный текст будет обработан.
  • Важно! Перед копированием данного кода, обязательно переключите раскладку клавиатуры на русский язык.
Sub Translit()
Dim Txt As Variant
Dim i As Integer
Dim J As Integer
Dim c As String
Dim flag As Integer
Dim outchr As String
Dim outstr As String

 Dim Rus As Variant
 Rus = Array("а", "б", "в", "г", "д", "е", "ё", "ж", "з", "и", "й", "к", _
 "л", "м", "н", "о", "п", "р", "с", "т", "у", "ф", "х", "ц", "ч", "ш", _
 "щ", "ъ", "ы", "ь", "э", "ю", "я", "А", "Б", "В", "Г", "Д", "Е", _
 "Ё", "Ж", "З", "И", "Й", "К", "Л", "М", "Н", "О", "П", "Р", _
 "С", "Т", "У", "Ф", "Х", "Ц", "Ч", "Ш", "Щ", "Ъ", "Ы", "Ь", "Э", "Ю", "Я")

 Dim Eng As Variant
 Eng = Array("a", "b", "v", "g", "d", "e", "jo", "zh", "z", "i", "j", _
 "k", "l", "m", "n", "o", "p", "r", "s", "t", "u", "f", "kh", "ts", "ch", _
 "sh", "sch", "''", "y", "'", "e", "yu", "ya", "A", "B", "V", "G", "D", _
 "E", "JO", "ZH", "Z", "I", "J", "K", "L", "M", "N", "O", "P", "R", _
 "S", "T", "U", "F", "KH", "TS", "CH", "SH", "SCH", "''", "Y", "'", "E", "YU", "YA")

 For Each Txt In Selection.Cells
 outstr = Empty
 For i = 1 To Len(Txt)
 с = Mid(Txt, i, 1)

 flag = 0
 For J = 0 To 65
 If Rus(J) = с Then
 outchr = Eng(J)
 flag = 1
 Exit For
 End If
 Next J
 If flag Then outstr = outstr & outchr Else outstr = outstr & с
 Next i

 Txt.Value = outstr
 Next Txt
End Sub
 

Итак, надеюсь вы нашли ответ на свой вопрос о том, как проще всего транслитерировать текст в Excel (преобразовать текст на русском языке в транслит).

Ставьте лайки, подписывайтесь на наши группы в социальных сетях и следите за следующими уроками.

SirExcel — безграничные возможности Excel

Результат транслитерации выделенного диапазона ячеек

Надстройка для транслитерации или кодирования (замены символов их кодами) выделенного диапазона ячеек 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) Программа перебирает все ячейки в цикле — поэтому обработка может работать медленно при больших диапазонах обрабатываемых данных.

При необходимости макрос можно существенно ускорить, если обрабатывать не текст ячеек, а их значения.

  • 36642 просмотра

Не получается применить макрос? Не удаётся изменить код под свои нужды?

Оформите заказ у нас на сайте, не забыв прикрепить примеры файлов, и описать, что и как должно работать.

Если вам необходимо выполнить транслит русских букв в английские.

Сохраняем файл excel как Книга Excel с поддержкой макросов (*xlsm). Вызываем сочетанием клавиш Alt+F11 Microsoft Visual Basic For Applications, в окне Project кликаем правой кнопкой мыши, выбираем Insert — Module и вставляем следующее:


Function TRANSLIT(Txt As String) As String
       Dim Rus As Variant
       Rus = Array("а", "б", "в", "г", "д", "е", "ё", "ж", "з", "и", "й", "к", _
       "л", "м", "н", "о", "п", "р", "с", "т", "у", "ф", "х", "ц", "ч", "ш", _
       "щ", "ъ", "ы", "ь", "э", "ю", "я", "А", "Б", "В", "Г", "Д", "Е", _
       "Ё", "Ж", "З", "И", "Й", "К", "Л", "М", "Н", "О", "П", "Р", _
       "С", "Т", "У", "Ф", "Х", "Ц", "Ч", "Ш", "Щ", "Ъ", "Ы", "Ь", "Э", "Ю", "Я")
       Dim Eng As Variant
       Eng = Array("a", "b", "v", "g", "d", "e", "e", "zh", "z", "i", "j", _
       "k", "l", "m", "n", "o", "p", "r", "s", "t", "u", "f", "h", "c", "ch", _
       "sh", "sch", "''", "y", "", "e", "yu", "ya", "A", "B", "V", "G", "D", _
       "E", "Jo", "Zh", "Z", "I", "J", "K", "L", "M", "N", "O", "P", "R", _
       "S", "T", "U", "F", "H", "C", "Ch", "Sh", "Sch", "''", "Y", "", "E", "Yu", "Ya")
       For I = 1 To Len(Txt)
            с = Mid(Txt, I, 1)
            flag = 0
            For J = 0 To 65
                  If Rus(J) = с Then
                       outchr = Eng(J)
                       flag = 1
                       Exit For
                 End If
           Next J
           If flag Then outstr = outstr & outchr Else outstr = outstr & с
      Next I
      TRANSLIT = outstr
End Function

Для транслита русских букв в английские в ячейке вводим: =TRANSLIT(НомерЯчейки)

Главная » VBA » Транслит excel

Транслит

​Смотрите также​ не печатаются?​Yoooo​ + 1 cell1.Value​И 2 коротких​Martin Fourcade -​ String mNewString =​

​ «л», «м», «н»,​ «T», «U», «F»,​​ «n», «o», «p»,​​ i, 1)) -​: Внес поправку​ String) As String​​ открывается, но без​​ текст с транслита.​На любом листе​

​ макросов (Macro Enabled​Если Вам часто приходится​Hugo121​: Sub TransText() Dim​ = Worksheets(«Словарь»).Cells(cell2.Row, i).Value​ вопроса:​ Мартен Фуркад​ UnTranslit(Translit(s))что означает -​ «о», «п», «р»,​ «H», «C», «Ch»,​ «r», «s», «t»,​ 1040​KuklP​Dim x, p2​ данных,только макросы.​ Мне надо перевести​ рабочего файла вы​ Workbook), т.е. в​ переводить кириллицу в​: удобнее по другому​ sText, vFindText, vReplText,​ GoTo 1 End​1. Как увеличить​Björn Ferry -​ Передать к обработке​ «с», «т», «у»,​ «Sh», «Zch», «»»,​ «u», «f», «h»,​Select Case j​: Леш,дружище, это не​For Each x​SIMRus​ столбик имени​ сможете использовать эту​ формате XLSM.​ транслит (а попробуйте-ка​Sub Test_Translit() Dim​ i Set sText​ If Next cell2​ у Макроса «зону​ Бьёрн Ферри​ фразу s функцией​ «ф», «х», «ц»,​ «‘Y», «‘», «Eh»,​ «c», «ch», «sh»,​Case 0 To​ моя функция. Просто​ In Split(s)​: Мои извинения!Дубль 2.​Alexandr​ функцию, вставив ее​Есть База данных.​ сделать это для​ r As Range​ = ActiveDocument.Range vFindText​ 1: Next cell1​ просмотра столбцов» ??​Ole Einar Bjørndalen​ Translit (на лат.),​ «ч», «ш», _​ «Ju», «Ja», «a»,​ «zch», «»», «‘y»,​ 63, 65 ‘А-Я,а-я,ё​ валяется в общей​If p2 Then​Сохранено в формате​Alexandr​ через меню Вставка​Мне нужно прописать​ фамилии «Кржижановский», например),​ Set r =​ = Array(«щ», «ч»,​

​ End Sub​ Т.е. этот Макрос​ — Уле-Эйнар Бьёрндален​ потом функцией UnTranslit,​ «щ», «и», «ь»,​

  • ​ «b», «v», «g»,​ «‘», «eh», «ju»,​Mid(out, k) =​​ свалке. Даже не​FamIO = FamIO​
  • ​ xls, удалена картинка​Alexandr​ — Функция =Translit(текст)​​ в одном столбце​ то эта функция​

​ ActiveDocument.Range r.Select »Debug.Print​​ «ш», «ъ», «ы»,​​Теперь можно вернуться на​

ТранслитȎxcel

​ «просматривает» только 3​Вдобавок, в зависимости​ а результат присвоить​ «ю», «я», «А»,​ «d», «e», «jo»,​ «ja») For iCount%​ Eng(j)​ помню, где взял.​ & LCase(Left(Translit((x)), 1))​ с фона, но​Artem​Текст — транслитируемый​ все название в​ — для Вас.​ Selection.Range.Text Translit (Selection.Range.Text)​ «ь», _ «э»,​ лист с отчетом​ столбца на листе​

​ от гонки фамилии​ переменной mNewString (фраза​ «Б», «В», «Г»,​ «zh», «z», «i»,​ = 1 To​k = k​ Поэтому без ссылки​Else​

planetaexcel.ru

Некоторые функции эксель

​ вес 132 кб…как​
​Artem​ текст. Этот аргумент​ КАПСЛОКЕ и сделать​Откройте редактор Visual Basic​ »йцукенгшщзхъфывапролджэячсмитьбюё »Debug.Print Selection.Range.Text​
​ «ю», «я», _​ и запустить макрос​ «Словарь» и потом​

​ могут меняться местами.​​ s не измениться)​ «Д», «Е», _​ «jj», «k», «l»,​ 65 iValue$ =​
​ + Len(Eng(j))​ на автора. Я​FamIO = LCase(Translit((x)))​ меньше сделать не​и т.д.​ может быть ссылкой​ транслитерацию.​

​ (​​ End Sub Sub​ «ё», «ж», «й»,​Translate​ возвращаеться к 1-му​
​Т.е. нужно что-то​
​Если разпишете по​ «Є», «Ж», «З»,​ «m», «n», «o»,​ Replace(iValue$, Mid(iRussian$, iCount%,​Case -15 ‘Ё​
​ бы переписал ее​p2 = True​ знаю.​
​AlexM​ на текст (ячейку).​
​Каким образом это​Alt+F11​
​ Translit(ByVal txt As​ «а», «б», «в»,​через меню​ столбцу этого же​ вроде массовой замены​ частях, тогда​ «И», «Ї», «Й»,​ «p», «r», «s»,​
​ 1), iTranslit(iCount%), ,​Mid(out, k) =​
​ совсем иначе, но​End If​
​Файл удален​: Нужна таблица соответствия​Наталия​ можно сделать, наиболее​), вставьте через меню новый​
​ String) MK00 «а»,​ «г», «д», «е»,​Сервис — Макрос -​ листа. Нужно, чтобы​ «Найти» и «Заменить​
​’ s -​ «К», «Л», «М»,​ «t», «u», «f»,​ , vbBinaryCompare) ‘MS​ Eng(64)​
​ лень:-) Но все​Next​- велик размер​ букв.​: на сайте онлайн​
​ быстро?​ пустой программный модуль​ «a» MK00 «б»,​ «з», _ «и»,​ Макросы (Tools -​
​ «просматривал» хотя бы​ на».​
​ русская фраза, mNewString​ «Н», «О», «П»,​ «h», «c», «ch»,​ Excel 2000 Next​k = k + 2​
​ равно, спасибо.​End Function​ — [​II4eJI​https://translit.net/​
​Ramiro’zz​ (​ «b» MK00 «в»,​ «к», «л», «м»,​ Macro — Macros)​
​ 5 столбцов, И​У кого-нибудь есть​ =Translit (s) ‘​ «Р», _ «С»,​ «sh», «zch», «»»,​
​ Translit$ = iValue$​Case Else ‘символы,​И второй Леша(Казанский)​Применять на листе​МОДЕРАТОРЫ​
​: И как ее​из столбца excel​
​: точно не знаю​Insert — Module​
​ «v» MK00 «г»,​
​ «н», «о», «п»,​или нажав ALT+F8.​
​ НЕ возвращался к​ идеи? Спасибо :))​
​ mNewString — трнслитерация​
​ «Т», «У», «Ф»,​
​ «‘y», «‘», «eh»,​
​ End Function Sub​
​ не явл. русскими​
​ — спасибо, радует,​ так: =famio(A2)​]​ сделать такую таблицу?​ скопировать текст, нажать​
​ возможно ли такое,​
​) и скопируйте туда​
​ «g» MK00 «д»,​
​ «р», «с», «т»,​
​ Все слова из​ 1-му столбцу​RAN​ лат. ‘ s​ «Х», «Ц», «Ч»,​ «ju», «ja») For​
​ IspTranslit() Dim rCell​ буквами​ что мы друг​MCH​

​Михаил С.​​AlexM​
​ в меню над​
​ но для эксперимента​ текст этой функции:​ «d» MK00 «е»,​ «у», «ф», «х»,​ вашего отчета, найденные​2. Что будет,​: Функции, способные​

Транслитерация в экселе

​ — фраза лат.​​ «Ш», «Щ», «И»,​ iCount = 1​
​ As Range, Rng​Mid(out, k) =​ друга поддерживаем. А​: ну и мой​: В архив, предпочтительно​: Две колонки​ окошком «В русский»,​ можно попробовать так:​Function Translit(Txt As​

​ «e» MK00 «ё»,​​ «ц») vReplText =​

​ в на листе​

​ если убрать из​
​в основном, называются​ буквами mNewString =UnTranslit​ «Ь», «Ю», «Я»,​ To 66 sValue​
​ As Range Set​

​ Mid$(txt, i, 1)​​ ты у нас​ вариант​ .rar​EN — RU​ потом этот столбик​

​пропечатать названия на​​ String) As String​ «jo» MK00 «ж»,​
​ Array(«zch», «ch», «sh»,​Словарь​ макроса строчку:​ «транслит».​

​ (s) ‘ mNewString​​ » «, «‘»)​ = Replace(sValue, Mid(sRussian,​ Rng = Range(«A1:A24»)​k = k + 1​ так вообще, умничка!​SIMRus​Михаил С.​A — А​ скопировать обратно в​ русском, пропечатать алфавит​

​ Dim Rus As​
​ «zh» MK00 «з»,​ «»», «‘y», «‘»,​, будут заменены на​Langs = 3​Ищите, и обрящете.​ — трнслитерация рус.Пробуйте.​ EngLang = Array(«a»,​ iCount, 1), sTranslit(iCount),​ ‘тут указываете свой​End Select​MCH​: Протестил Ваш вариант,​: ЗЫ и этот​B — Б​ excel​ соответствие русских букв​ Variant Rus =​ «z» MK00 «и»,​ _ «eh», «ju»,​ слова из соседней​ ‘количество языков перевода,​Правда, как с​ Удачи.​ «b», «v», «g»,​ , , vbBinaryCompare)​ диапазон For Each​Next​:​ он подходит полностью!Спасибо!​ файл не открывается.​C — С​Alesto911​ транслиту, сообразить какуюто​ Array(«а», «б», «в»,​ «i» MK00 «й»,​ «ja», _ «jo»,​ колонки, т.е. переведены​ включая русский​ использованием транслита изобразить​Alexander_G​ «d», «e», «je»,​ ‘MS Excel 2000​ rCell In Rng​TranslitFast = Left$(out,​KuklP​Жаль уже 300​ :(​D — Д​: Ребят, есть следующая​ формулу для автоматической​ «г», «д», «е»,​ «jj» MK00 «к»,​ «zh», «jj», «a»,​ на другой язык.​Бывает, что при​ Fernand Renault, большой​: Привет всем! Подскажите​ «zh», «z», «i»,​ Next Translit =​ rCell.Value = Translit(rCell.Value)​

CyberForum.ru

Транслит (Формулы/Formulas)

​ k — 1)​​: Спасибо Миш. Только​ юзерам пароли раздали,​зы.зы Создайте пример​…..​ задача:​
​ замены символов с​
​ «ё», «ж», «з»,​
​ «k» MK00 «л»,​
​ «b», «v», «g»,​
​ Запуская макрос несколько​
​ «переводе» языков распознования​

​ вопрос.​​ макро который помогает​ «ji», «j», _​

​ sValue End Function​​ Next End SubОн​End Function​

​ помню, что точно​​ а то бы​
​ в новой книге,​
​P — П​
​в Экселе представлен​
​ русских на транслит​
​ «и», «й», «к»,​
​ «l» MK00 «м»,​
​ «d», «e», «z»,​
​ раз, мы будем​
​ будет 1 (английский),​buchlotnik​ переводить русские буквы​ «k», «l», «m»,​ Function UnTranslit(ByVal sValue​

​ транслитерирует из кириллицы​​SIMRus​ брал ее не​ вообще отлично было)​ и в примере​и тд.​;)
​ столбик с данными​Сергей хлызов​ _ «л», «м»,​ «m» MK00 «н»,​

​ _ «i», «k»,​​ по кругу переводить​ или до 5​
​: Хм… а по​ в латиницу​ «n», «o», «p»,​

​ As String) As​​ в латиницу. Возможно​

excelworld.ru

Транслитерация текста в ячейке

​: re: MCH​​ оттуда. Я туда​Единственная просьба внести​ оставьте только то,​
​Делайте файл-пример с​ на русском. рядом​: Чтобы перевести любые​ «н», «о», «п»,​
​ «n» MK00 «о»,​ «l», «m», «n»,​ наш отчет последовательно​ (англ, русский, французский,​ какому принципу​Например ячейка​ «r», «s», «t»,​

​ String Dim sRussian​ ли заставить его​Ваш вариант самый​ не заглядываю:-) Мне​ маленькую корректировку в​

​ что касается вопроса.​ именами EN и​ пустой столбик. Можно​ буквы (строчные/прописные) в​ «р», «с», «т»,​ «o» MK00 «п»,​ «o», «p», «r»,​ на русский-английский-немецкий-русский-английский-и т.д.​ немецкий, норвежский).​Ole Einar​А1 Москва​ «u», «f», «kh»,​ As String, iCount​ работать наоборот, т.​ подходящий!​ не нужно… А,​ код:​KuklP​ с таблицей соответствия​ ли как-то сделать​
​ прописные (КАПСЛОК по-вашему)​ «у», «ф», «х»,​ «p» MK00 «р»,​ «s», «t», «u»,​ Выглядеть это будет​InExSu​превращается в​

​А2 Самара​

​ «ts», «ch», _​​ As Integer, sTranslit​ е. транслитерировать из​Спасибо за участие!​ кстати и автора​логин формируется из​

​: А у меня​​ букв. Прикладывайте файл​ функцию, чтобы в​ существует функция​ «ц», «ч», «ш»,​ «r» MK00 «с»,​

​ «f», «h», «c»)​​ так:​: Привет!​​Уле-Эйнар​​и т.д.​

​ «sh», «sch», «y»,​​ As Variant sTranslit​ латиницы в кириллицу?​Спасибо за результат!​ там не нашел.​ ФИО, где фамилия​ вообще не загрузился.​ в тему.​

​ пустом столбике отобразилась​​=ПРОПИСН (текст)​ _ «щ», «ъ»,​ «s» MK00 «т»,​

​ With sText.Find For​

​Praktisch, nicht wahr? :)​​Пожалуйста, в книге​
​(через дефис). Что-то​Перевод:​ «‘», «yu», «ya»,​

​ = Array(«Zch», «zch»,​​ Мне он очень​

​Всем спасибо!!!!​ Так и мои(и​ пишется полностью(как есть),​PS Сергей. Игорь​AlexM​ транслитная версия первого​

​Текст — текст,​​ «ы», «ь», «э»,​ «t» MK00 «у»,​​ i = LBound(vFindText)​​bumbarasxx​

​ покажите:​​ подсказывает, что для​В1 Moskva​

​ «A», «B», «V»,​​ «»», «Ch», «ch»,​ понравился, так как​SIMRus​

​ не только) наработки​ а имя и​ у нас Hugo:-)​: Разумно такую задачу​ столбика?​

​ преобразуемый в верхний​​ «ю», «я», «А»,​ «u» MK00 «ф»,​
​ To UBound(vFindText) .Text​: Как сделать так,​

​1. Что у​​ проще ручками таблицу​B2 Samara​ «G», «D», _​ «Eh», «eh», «Ja»,​

​ он заглавные буквы​​: Поспешил(​

​ гуляют по инету​​ отчество сокращается до​Михаил С.​ решать макросом, но​Alesto911​ регистр. Этот аргумент​
​ «Б», «В», «Г»,​ «f» MK00 «х»,​
​ = vFindText(i) .Replacement.Text​ чтобы сохранилось форматирование​ Вас есть.​
​ соответствий сделать, чем​Спасибо!​
​ «E», «Je», «Zh»,​ «ja», «Jj», «jj»,​ заменяет на заглавные,​Пример работает отлично,​ без авторства. Это​
​ одной буквы.​: Сереж, прошу прощения;​ так как в​:​ может быть ссылкой​
​ «Д», «Е», _​ «h» MK00 «ц»,​ = vReplText(i) .Execute​ текста (жирный, курсив,​2. Что Вы​
​ заморачиваться на скрипты​Spasibo!​ «Z», «I», «Ji»,​ «Jo», «jo», «Ju»,​ строчные на строчные,​
​ а вот в​ ИМХО нормально. Задевает​В Вашем же​ у нас жара​ этом разделе спрашивают​
​Не по теме:​ на текст (ячейку).​
​ «Ё», «Ж», «З»,​ «c» MK00 «ч»,​ Replace:=wdReplaceAll Next i​ цвет и т.д.)​ хотите.​
​ под разные языки​drony​ «J», «K», «L»,​ «ju», «Sh», «sh»,​ не трогает остальные​
​ свой документ к​ только немного, когда​ варианте если имя​ — 32 в​ формулы. Выхода нет.​
​Да, можно!!!​Чтобы провести транслитерацию​ «И», «Й», «К»,​ ChrW(269) »»ch» MK00​ End With End​
​ после транслитерации?​dimakdd​dimakdd​: В PLEX есть​ «M», «N», «O»,​

​ «‘Y», «‘y», «Zh»,​ знаки, толщину букв​
​ сожалению прикрутить не​ кто-то приписывает себе​
​ или отчество начинается​
​ тени.​В файле два​
​И, воспользовавшись поиском​ кириллических букв необходимо​
​ «Л», «М», «Н»,​
​ «ш», ChrW(363) »»sh»​
​ Sub (имел сказать:​
​Function Translit(ByVal txt​
​: Вот пример. Excel-документ.​
​: Ой, СПАСИБО за​ функция =Translit() она​ «P», «R», _​ «zh», «‘», «A»,​ и их цвет.​
​ могу…​
​ авторство. Но Бог​
​ с букв которые​

​SIMRus​​ решения. Частично ручное​

​ уже давно нашёл​ проделать следующее:​
​ «О», «П», «Р»,​
​ MK00 «щ», «zch»​ оформляется​
​ As String) As​
​ В нём 3​ оперативность. Уже РЕШИЛ​
​ занимается этим.​
​ «S», «T», «U»,​
​ «a», «B», «b»,​
​ Вот только бы​
​формат xlsm, Excel​
​ с ним, несущественно.​

​ в транслитерации дают​: Дубль 3​

​ и автоматическое (очень​​ бы, есть здесь​1. Откройте рабочий​

​ _ «С», «Т»,​​ MK00 «ъ», «»»​так же​
​ String txtRussian =​ листа под названиями:​ проблему. Просто думал,​Но я предпочитаю​

​ «F», «Kh», «Ts»,​ «C», «c», «D»,​ научить его обратному​
​ 2010.​ Я открещиваюсь от​ две(ж, ш, ч​KuklP​ длинное).​ уже такие решения!!!​
​ файл.​ «У», «Ф», «Х»,​ MK00 «ы», «‘y»​)​ Array(«», «щ», «ч»,​ Лист 0, Men,​ что у меня​ PuntoSwitcher​
​ «Ch», «Sh», «Sch»,​ «d», «E», «e»,​
​ процессу, и обрабатывать​
​Пересохранял в xls,​ авторства, когда мне​

​ итд) то выглядит​​: Миш, у меня​II4eJI​

​Не ленись!!!​​2. Откройте редактор​ «Ц», «Ч», «Ш»,​ MK00 «ь», «‘»​Так она и​ «ш», «ъ», «ы»,​
​ Women.​
​ уникально-сложная ситуация. Оказалось​drony​ «Y», «‘», «Yu»,​
​ «F», «f», «G»,​ весь столбец A,​ 2003 результат тот​ его приписывают(абсолютно без​ примерно так:​ уже нет времени,​: Так надо было​KoGG​ Visual Basic (Alt+F11)​ «Щ», «Ъ», «Ы»,​ MK00 «э», «eh»​ так упрощена: см.​ «ь», «э», «ю»,​На Лист 0​ всё просто -​: Вот подобная функция​ «Ya», » «,​ «g», «H», «h»,​ а не только​ же…​ умысла, мои друзья​Кещян Жанна Васильевна​ вот функция транслит,​ сделать таблицу?​
​: Поиск по разделу​3. Вставьте новый​ «Ь», «Э», «Ю»,​ MK00 «ю», «ju»​ заглавные буквы на​ «я», «ё», «ж»,​ ввожу BABIKOV ANTON.​ ответы с этой​ :​ «j») For i​ «I», «i», «K»,​ указанные ячейки.​Вставил код, в​ по форумам) -​ keschyanzhv,​ а ты уж​Ваш вариант вполне​ по ключам «транслит»​ пустой программный модуль​ «Я») Dim Eng​ MK00 «я», «ja»​ рисунке.​ «й», «а», «б»,​ Используя текущую версию​
​ темы натолкнули меня​’Транслитерация русского текста​
​ = 1 To​ «k», «L», «l»,​
​IvanOK​
​ ячейке пишу функцию,​ а кто-то промолчит,​
​а должно так:​ дальше давай:​
​ может подойти я​
​ и «транслитерация» ничего​
​ (Insert — Module)​
​ As Variant Eng​
​ End Sub Sub​
​Yoooo​ «в», «г», «д»,​ скрипта получаю на​
​ на идеи, и​
​ в английский​
​ Len(Txt) curChr =​

​ «M», «m», «N»,​​:​

​ все как в​​ не открестится:-) Не​Кещян Жанна Васильевна​Function Translit(txt As​ думаю​ не дал. Потому​ и скопруйте туда​ = Array(«a», «b»,​ MK00(N1Z, N2Z) ‘​: Точно, если заменять​ «е», «з», «и»,​ «листе 0» -​
​ вот здесь моя​Function Translit(Txt As​ Mid(Txt, i, 1)​ «n», «O», «o»,​Sergei Sonin​ примере, но результата​

​ суть важно. Главное,​​ keschyanzv​

​ String) As String​​AlexM​ тема и создана.​ текст новой функции,​ «v», «g», «d»,​ ‘ Макрос7 Макрос​ по букве, то​ «к», _ «л»,​ BABIKOV Anton. Т.е.​ проблема решена:​ String) As String​ flag = 0​ «P», «p», «R»,​, можно сделайте наоборот​ нет(​ чтоб на пользу​Казанский​Dim i%, c$,​: Медленно работает​Alesto911​ которая будет действовать​ «e», «jo», «zh»,​ ‘ ‘ Selection.Find.ClearFormatting​ должно получиться. Я​ «м», «н», «о»,​ скрипт просматривает лист​Макрос-переводчик​Dim Rus As​

​ For j =​​ «r», «S», «s»,​ англ.алфавит …и потом​

​Единственно не знаю​ людям:-)​
​: А у меня​
​ flag As Boolean,​SIMRus​: Транслитерация из латиницы​ только в рабочем​ «z», «i», «j»,​
​ Selection.Find.Replacement.ClearFormatting With Selection.Find​ пробовал заменять весь​ «п», «р», «с»,​ «Men» и когда​http://www.planetaexcel.ru/techniques/7/56/​
​ Variant​ 0 To 65​ «T», «t», «U»,​
​ к каждой букве​

​ куда поставить Option​​nerv​ это учтено :)​ j%, outchr$, outstr$​: Существует задача транслитерировать​ в кириллицу​ файле:​ _ «k», «l»,​ .Text = N1Z​ текст целиком -​ «т», «у», «ф»,​ видит ТОЧНОЕ совпадение​Создаём Excel-документ. В​Rus = Array(«а»,​ If UkraineLang(j) =​ «u», «V», «v»,​ транслит…на руском​ Explicit, добавляется к​: и еще небольшой​
​Alex_ST​Dim RUS As​ ФИО с сокращением​

​Можно ли создать​Function Translit(Txt As​
​ «m», «n», «o»,​
​ .Replacement.Text = N2Z​ тогда формат слетает.​
​ «х», «ц») arrTranslit​
​ BABIKOV ANTON, то​ документе создаём «вторую​
​ «б», «в», «г»,​ curChr Then outchr​ «Z», «z») sRussian​и сначала разберитесь​ вышестоящему блоку и​ плевок​: Маленькая «полировка» функции​ Variant​ ИО​ интерпретатор для перевода​ String) As String​ «p», «r», «s»,​ ‘N2Z .Forward =​Но чтоб сделать​ = Array(«», «zch»,​ на «листе 0″​ книгу». Во второй​ «д», «е», «ё»,​ = EngLang(j) flag​ = «ЩщъЧчЭэЯяЙйЁёЮюШшЫыЖжьАаБбЦцДдЕеФфГгХхИиКкЛлМмНнОоПпРрСсТтУуВвЗз» For​ как работает ета​ при его выполнении​Static RUS As​ Сергея: массив удобнее​RUS = Array(«а»,​
​Работа происходит с​ латинских букв в​
​Dim Rus As​ «t», «u», «f»,​
​ True .Wrap =​ так, как делал​ «ch», «sh», «»»,​
​ заменяет значение ячейки​
​ книге, в столбце​ «ж», «з», «и»,​
​ = 1 Exit​ iCount = 1​
​ функция и вам​ выдает ошибку..​
​ Variant​
​ и КОРОЧЕ задавать​ «б», «в», «г»,​
​ многолистовым документом в​
​ кириллицу​ Variant​ «kh», «ts», «ch»,​
​ wdFindContinue .Format =​ код в примере​
​ «‘y», «‘», «eh»,​
​ на​
​ «А» прописываем фамилии​
​ «й», «к», «л»,​ For End If​
​ To 64 sValue​

​ все станет понятно,​​Hugo​
​If IsEmpty(RUS) Then​ не через Array​

​ «д», «е», «ё»,​
​ котором хранятся пароли,​
​Александр Смит​

​Rus = Array(«а»,​​ _ «sh», «sch»,​
​ False .MatchCase =​ — ещё нужно​ «ju», «ja», «jo»,​значение ближайшей правой​ на языке-оригинале. В​
​ «м», «н», «о»,​ Next j If​
​ = Replace(sValue, sTranslit(iCount​ особенно обратите внимание​: Да что там​

​RUS = Array(«а»,​ а через Split:​ «ж», «з», «и»,​ лист — отдел.​: Спасибо, посмотрел. Но​
​ «б», «в», «г»,​ «»», «y», «‘»,​ False .MatchWholeWord =​ дорабатывать.​ «zh», «jj», «a»,​ ячейки на листе​

​ столбце «B» прописываем​​ «п», «р», «с»,​ flag Then outstr​
​ — 1), Mid(sRussian,​ на коичесто символов​ крутить…​ «б», «в», «г»,​Function Translit$(txt$)​
​ «й», «к», _​

​Структура такая столбец​ ничего не понял.​

​ «д», «е», «ё»,​​ «e», «yu», «ya»,​ False .MatchWildcards =​
​Hugo121​ «b», «v», «g»,​ «Men». ЭТО ОТЛИЧНО.​ фамилии так, как​ «т», «у», «ф»,​ = outstr &​ iCount, 1), ,​ в массиве и​Открываете оба документа,​ «д», «е», «ё»,​Dim i%, c$,​»л», «м», «н»,​

​ А — ФИО​​ На свой вкус​ «ж», «з», «и»,​ «A», «B», «V»,​ False .MatchSoundsLike =​: добавить букву ц​ «d», «e», «z»,​

​Однако когда на​​ хотим их видеть​ «х», «ц», «ч»,​ outchr Else _​ , vbBinaryCompare) ‘MS​ соотвествее каждому символу​
​ Alt+F11, в редакторе​ «ж», «з», «и»,​ j%, outChr$, outStr$,​ «о», «п», «р»,​
​ в виде Иванов​ попробовал исправить исход​ «й», «к», _​ «G», «D», _​
​ False .MatchAllWordForms =​Sub Test_Translit() Dim​ «i», «k», _​ «листе 0» ввожу​

planetaexcel.ru

Транслитерация из латиницы в кириллицу

​ на русском.​​ «ш», «щ», «ъ»,​ outstr = outstr​
​ Excel 2000 Next​Sergei Sonin​ тянетен мышью модуль​ «й», «к», _​ flag As Boolean​ «с», «т», «у»,​ Иван Иванович, столбец​ транслитерации, добавил замену​»л», «м», «н»,​ «E», «JO», «ZH»,​ False End With​ r As Range​ «l», «m», «n»,​ AKIMOVA TATIANA, исполняю​Копируем фамилии из​ «ы», «ь», «э»,​ & curChr Next​ UnTranslit = sValue​:​ целиком из одного​»л», «м», «н»,​Dim RUS: RUS​ «ф», «х», «ц»,​ В — login​ пробела на нижнее​ «о», «п», «р»,​ «Z», «I», «J»,​ Selection.Find.Execute Replace:=wdReplaceAll Selection.Find.Execute​ Set r =​ «o», «p», «r»,​ скрипт, ничего не​ pdf-документа с результатами​ «ю», «я», «А»,​ i Translit =​ End Function Sub​IvanOK​ документа в другой.​ «о», «п», «р»,​ = Split(«а б​ «ч», «ш», _​ в виде ivanovii,​ подчеркивание, изменил кол-во​ «с», «т», «у»,​ «K», «L», «M»,​ End Sub​ ActiveDocument.Range r.Select Translit​ «s», «t», «u»,​ происходит. Т.к. ячейка​ гонок, вставляем в​ «Б», «В», «Г»,​ outstr End Function​ Test() Dim s​, спасибо, я попробовал​Всё, можно пользоваться.​ «с», «т», «у»,​ в г д​»щ», «ъ», «ы»,​ С — пароль.​ символов в счетчике.​ «ф», «х», «ц»,​ «N», «O», «P»,​Yoooo​ (r) »йцукенгшщзхъфывапролджэячсмитьбюё End​ «f», «h», «c»)​ с содержанием AKIMOVA​

​ «первую книгу» документа,​​ «Д», «Е», «Ё»,​​ Sub Test_Translit() Dim​​ As String s​ так сделать -​И Option Explicit​ «ф», «х», «ц»,​
​ е ё ж​ «ь», «э», «ю»,​Находил на форуме​ Начал выходить полный​ «ч», «ш», _​ «R», _ «S»,​:​ Sub Sub Translit(ByVal​

​ For iCount =​​ TATIANA расположена на​​ создаём и запускаем​​ «Ж», «З», «И»,​ mstr$ mstr =​ = «АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдеёжзийклмнопрстуфхцчшщъыьэюя» Debug.Print​ но тут придется​ будет на месте.​ «ч», «ш», _​ з и й​ «я», «А», «Б»,​ разные варианты, но​

​ бред.​​»щ», «ъ», «ы»,​ «T», «U», «F»,​shanemac51​ txt As String)​ 1 To 33​ листе «Women», который​
​ нижеследующий макрос:​​ «Й», «К», «Л»,​ «Вчинено поквапно» MsgBox​ s Debug.Print UnTranslit(Translit(s))​ сопоставлять несколько букв​SIMRus​

​»щ», «ъ», «ы»,​​ к л м​ «В», «Г», «Д»,​ к сожалению у​Попробуйте​ «ь», «э», «ю»,​ «KH», «TS», «CH»,​, спасибо большое! намного​ Dim X1, X2​ txt = Replace(txt,​ сприпт не видит.​Sub Translate()​
​ «М», «Н», «О»,​ «Вихідний текст:» &​ End SubС уважением,​ латинского алфавита одной​: Не поверите, все​ «ь», «э», «ю»,​ н о п​ «Е», _​ меня не получилось​Function ТРАНСЛИТ(Ячейка As​

​ «я», «А», «Б»,​​ «SH», «SCH», «»»,​​ проще. только тут​​ Dim txtRussian, arrTranslit​ txtRussian(iCount), arrTranslit(iCount), ,​Т.е. как сделать​Dim cell1 as​ «П», «Р», «С»,​
​ Chr(13) & _​
​ Aksima​ русской, как и​ так и делаю)​ «я»)​ р с т​»Ё», «Ж», «З»,​ их прикрутить(​ Range) As String​ «В», «Г», «Д»,​ «Y», «‘», «E»,​ ещё один вопрос​ txtRussian = Array(«»,​ , vbBinaryCompare) txt​ так, чтобы скрипт​ Range, cell2 As​ «Т», «У», «Ф»,​ Space(3) & Chr(34)​Igor_Tr​ в указанном примере.​Что касается Option​End If​ у ф х​ «И», «Й», «К»,​В идеале надо​ Dim sRussian As​ «Е», _​ «YU», «YA») For​ возник)​ «щ», «ч», «ш»,​ = Replace(txt, UCase(txtRussian(iCount)),​ «просматривал» ВСЕ листы,​ Range​ «Х», «Ц», «Ч»,​ & mstr &​: Ещё вариант:​ И это никак​ Explicit, если добавлять​Казанский​ ц ч ш​ «Л», «М», «Н»,​ что бы на​ Variant: Dim sTranslit​»Ё», «Ж», «З»,​ I = 1​Какие коды ChrW​ «ъ», «ы», «ь»,​ UCase(arrTranslit(iCount)), , ,​ которые созданы в​Dim i as​ «Ш», «Щ», «Ъ»,​ Chr(34) & _​- использовать конструкцию​ не получается​ после моих модулей,​: Если задуматься об​ щ ъ ы​ «О», «П», «Р»,​ заданных листах(потому что​ As Variant: Dim​ «И», «Й», «К»,​ To Len(Txt) с​ у этих символов:​ «э», «ю», «я»,​ vbBinaryCompare) Next ThisDocument.Range.InsertAfter​ Excel-документе ??​ Long, Langs As​ «Ы», «Ь», «Э»,​ Chr(13) & Chr(13)​ Select Case,​IvanOK​ то он клеется​ оптимизации, то поиск​ ь э ю​ _​ не на всех​ s As String​ «Л», «М», «Н»,​ = Mid(Txt, I,​ď​ «ё», «ж», «й»,​ (vbNewLine & txt)​Обучим немецкому​

​ Long​​ «Ю», «Я»)​
​ & _ «Transliteration:»​- если предполагается​
​: тебе нужно сделать​ к последнему, а​ русской буквы в​ я А Б​»С», «Т», «У»,​
​ такая структура) что​ sRussian = Array(«А»,​ «О», «П», «Р»,​ 1) flag =​ť​
​ «а», «б», «в»,​ For iCount =​языку по методу​Langs = 3​Dim Eng As​ & Chr(13) &​ обрабатывать большое колич​ двва масива, в​​ не существует сам​​ массиве не нужен​ В Г Д​ «Ф», «Х», «Ц»,​ то анализировало столбец​ «Б», «В», «Г»,​ _​ 0 For J​
​ć​ «г», «д», «е»,​ 1 To 33​ гестапо.​ ‘количество языков перевода,​ Variant​ _ Space(3) &​

​ данных, алгоритм нужно​​ твоем примере есть​ по себе. Но​ — достаточно расположить​ Е Ё Ж​ «Ч», «Ш», «Щ»,​ А и при​
​ «Д», «Е», «Ё»,​»С», «Т», «У»,​ = 0 To​ź​ «з», «и», «к»,​ txt = Replace(txt,​Работающие в иностранных компаниях​ включая русский​Eng = Array(«a»,​ Chr(34) & _​ выстроить с учётом​ только один массив,​ я просто все​ английские строки в​ З И Й​ «Ъ», «Ы», «Ь»,​ появлении там ФИО​ «Ж», «З», «И»,​ «Ф», «Х», «Ц»,​ 65 If Rus(J)​ś​ _ «л», «м»,​ arrTranslit(iCount), txtRussian(iCount), ,​ сотрудники часто вынуждены​For Each cell1​ «b», «v», «g»,​ Translit(mstr) & Chr(34)​ Частотности,​ потом искать сопоставление​ это вставил в​ порядке возрастания кодов​ К Л М​ «Э», «Ю», «Я»)​ транслитерировало его по​ «Й», «К», «Л»,​ «Ч», «Ш», «Щ»,​ = с Then​ŕ​ «н», «о», «п»,​ , vbBinaryCompare) txt​ готовить по два​ In ActiveSheet.Cells.SpecialCells(xlCellTypeConstants)​ «d», «e», «jo»,​ End Sub​- учитывать, что​ букв​ самое начало, но​ русских букв (только​ Н О П​Dim Eng As​ вышеописанному принципу в​ «М», «Н», «О»,​ «Ъ», «Ы», «Ь»,​ outchr = Eng(J)​ń​ «р», «с», «т»,​ = Replace(txt, UCase(arrTranslit(iCount)),​ одинаковых отчета для​For Each cell2​ «zh», «z», «i»,​Igor_Tr​ в английском и​Sergei Sonin​ результата опять же​ буквы ё, Ё​ Р С Т​ Variant​ В, при этом​ «П», «Р», «С»,​ «Э», «Ю», «Я»)​ flag = 1​ł​ «у», «ф», «х»,​ UCase(txtRussian(iCount)), , ,​ отечественного и зарубежного​ In Worksheets(«Словарь»).Cells.SpecialCells(xlCellTypeConstants)​ «j», «k», «l»,​:​ других европейских языках​, а вы что​ не дало(​ выбиваются из общего​ У Ф Х​Eng = Array(«a»,​ понимание того что​ «Т», «У», «Ф»,​Dim Eng As​ Exit For End​Я нашёл таблицы,​ «ц») arrTranslit =​ vbBinaryCompare) Next ThisDocument.Range.InsertAfter​ своего начальства -​If cell1.Value =​ «m», «n», «o»,​Aksima​

​ есть так наз​​ с трастлита на​​SIMRus​​ ряда). И еще​ Ц Ч Ш​ «b», «v», «g»,​ это новый юзер,​ «Х», «Ц», «Ч»,​ Variant​ If Next J​ где ко всем​ Array(«», «zch», «ch»,​ (txt) End Function​ на русском и​

​ cell2.Value Then​ «p», «r», «s»,​, Спасибо преогромное! Но​ диграфы,​ латынь потом с​: Пробовал разные варианты.​ кое-что. В результате​ Щ Ъ Ы​ «d», «e», «jo»,​​ а не изменение​​ «Ш», «Щ», «Ъ»,​
​Eng = Array(«a»,​ If flag Then​ символам отображаются их​ «sh», «»», «‘y»,​ Sub Test_Translit() Dim​ английском языках. Цифры​i = cell2.Column​ «t», «u», «f»,​​ вот беда, я​
​- в приложенном​ етого же на​
​ Возможно я чего​ на строке длиной​ Ь Э Ю​ «zh», «z», «i»,​ старого осуществлялось по​ «Ы», «Ь», «Э»,​ «b», «v», «g»,​ outstr = outstr​ код, но таки​ «‘», «eh», «ju»,​ r As Range​ в этих отчетах,​If i =​ «kh», «ts», «ch»,​
​ никак не соображу,​ файле давнее обсуждение​ кирилицу?​ то не понимаю,​ 820 при многократном​ Я»)​ «j», _​ заполненности ячейки в​ «Ю», «Я», «а»,​ «d», «e», «jo»,​
​ & outchr Else​ там почему-то нет.​
​ «ja», «jo», «zh»,​ Set r =​ естественно, одинаковые, а​ Langs Then i​ «sh», «sch», «»»,​ как запустить этот​ алгоритма транслитерации на​Igor_Tr​ но на листе​ вызове работает в​

CyberForum.ru

Как преобразовать русские буквы в латиницу?

​Dim Eng: Eng​​»k», «l», «m»,​ столбце С…ну во​ «б», «в», «г»,​ «zh», «z», «i»,​

​ outstr = outstr​
​Казанский​
​ «jj», «a», «b»,​
​ ActiveDocument.Range Translit (r)​

​ меняются только подписи,​
​ = 1 Else​
​ «y», «‘», «e»,​

​ макрос, применяя его​
​ другом форуме (из​

​: To Sergei Sonin.​​ 2 в примере​ 20 раз быстрее,​ = Split(«a b​
​ «n», «o», «p»,​ всяком случае я​

​ «д», «е», «ё»,​​ «j», _​ & с Next​

​: Вообще это зависит​ «v», «g», «d»,​
​ End Sub​ заголовки и другой​
​ i = i​ «ju», «ja», «A»,​
​ ко всему столбцу,​ латиницы в кириллицу,​ А зачем Вам​ тоже не работает(​ чем функция Translit​ v g d​ «r», «s», «t»,​ как то так​ «ж», «з», «и»,​»k», «l», «m»,​ I Translit =​ от шрифта.​ «e», «z», «i»,​Hugo121​ текст.​ + 1​ «B», «V», «G»,​ скажем от третьей​ но его несложно​ изобретать? Я думаю,​Hugo​ с предыдущей страницы.​ e jo zh​
​ «u», «f», «kh»,​ себе это представляю…​
​ «й», «к», «л»,​ «n», «o», «p»,​ outstr End Function​А коды можно​ «k», _ «l»,​: Теоретически возможно, практически​Такую задачу можно решить​cell1.Value = Worksheets(«Словарь»).Cells(cell2.Row,​ «D», «E», «JO»,​ его строки и​ «зеркально» поменять), функция​ лучьше скачать какую-то​: Значит что-то не​Можно оптимизировать еще,​ z i j​ «ts», «ch», _​Если анализ в​ «м», «н», «о»,​ «r», «s», «t»,​Теперь на любом листе​ узнать простым макросом.​ «m», «n», «o»,​ вряд ли кто​

​ более изящно. Создаем​ i).Value​
​ «ZH», «Z», «I»,​ до конца. Вот​

​ транслитерации​
​ програмку Free, а​ так делаете (хотя​
​ но существенное ускорение​ k l m​
​»sh», «sch», «»»,​
​ реальном времени затруднителен​
​ «п», «р», «с»,​
​ «u», «f», «kh»,​
​ этой книги Вы​
​For i =​ «p», «r», «s»,​ бесплатно сделает. А​ новый лист в​GoTo 1​
​ «J», «K», «L»,​

​ такой я тугодум.​

​Myhaylo​

planetaexcel.ru

Имена с латиницы на Кириллицу (Макросы/Sub)

​ здесь на форуме​​ где тут можно​ вряд ли будет.​ n o p​ «y», «‘», «e»,​ или не возможен,​ «т», «у», «ф»,​ «ts», «ch», _​ можете использовать эту​
​ 1 To 30000​ «t», «u», «f»,​
​ платно — будет​ таком отчете и​
​End If​ «M», «N», «O»,​
​ Подскажите пожалуйста.​(без учёта частотности),​ спросить у ребят,​
​ не так, не​Function TranslitFast(txt$) As​ r s t​ «yu», «ya», «A»,​
​ то хотя бы​ «х», «ц», «ч»,​

​»sh», «sch», «»»,​​ функцию, вставив ее​
​ Cells(i, 1).Value =​ «h», «c») X1​
​ дорого.​
​ называем его «​Next cell2​ «P», «R», «S»,​To Sergei Sonin​

​ примеры алгоритмов расчёта​​ как вызвать ее​ знаю…)​​ String​​ u f kh​​ «B», «V», «G»,​​ что бы это​ «ш», «щ», «ъ»,​ «y», «‘», «e»,​ через Мастер Функций:​ ChrW(i) Next i​ = LBound(txtRussian, 1)​

​Упрощайте задачу.​​Словарь​1:Next cell1​ «T», «U», «F»,​ Вопрос был не​ частотности применительно к​ (например, ч/з функцию​Ну а Option​Static Eng$()​ ts ch sh​ «D», _​ действие выполнялось по​
​ «ы», «ь», «э»,​
​ «ju», «ja», «A»,​
​в Excel 2003 и​Hugo121​ X2 = UBound(txtRussian,​bumbarasxx​». Выписываем на этот​End Sub​ «KH», «TS», «CH»,​ мне, но смотрю​ русскому языку (его​ WinAPI), вставить/получить/вернуть на​
​ Explicit всего лишь​Dim out$, i&,​ sch » y​»E», «JO», «ZH»,​ горячей кнопке.​ «ю», «я») sTranslit​
​ "B", "V", "G",​
​ старше - через​, я закрыл все​ 1) Do While​
​: Как можно сделать​ лист в любом​dimakdd​
​ "SH", "SCH", "''",​ что задержка с​ можно применить для​
​ лист/в код.​ заставляет объявлять все​
​ j&, k&​ ' e yu​
​ "Z", "I", "J",​Заранее спасибо!​
​ = Array("A", "B",​
​ "D", _​ меню​ документы, закрыл окно​ X1 < X2​ транслитерацию с сохранением​
​ порядке все слова,​: И позвольте ещё​
​ "Y", "'", "E",​
​ ответом. Давайте так,​
​ расчёта частотности к​
​Для примера, есть​
​ переменные модуля.​

​k = 1​​ ya A B​ «K», «L», «M»,​Михаил С.​ «V», «G», «D»,​»E», «JO», «ZH»,​Вставка — Функция (Insert​ VBA. Теперь когда​ Debug.Print X1; MREPL0326​ форматирования текста?​ которые надо автоматически​ помощь. Я просто​ «JU», «JA»)​ если смогу обяснить​ любому языку)​ такая утилитка NI​Эта строка должна​
​On Error Resume​ V G D​ «N», «O», «P»,​
​: Без Вашего файла-примера​ «E», «E», «Zh»,​ «Z», «I», «J»,​ — Function)​ открываю документ, не​ txtRussian(X1), arrTranslit(X1) X1​Казанский​ переводить. Для каждого​ в Макросах Excel,​For I =​ — спасибо скажете​- расчитывать частотность​ Transliterator (http://www.kivlab.com/soft/transliterator/). Вот​ быть одна на​
​ Next​ E JO ZH​
​ «R», _​ (что есть -​ «Z», «I», «Y»,​ «K», «L», «M»,​в Excel 2007 и​ могу найти этот​ = X1 +​: Файл-пример приложите.​ языка добавляем новый​ на ДАННЫЙ МОМЕНТ,​ 1 To Len(Txt)​ тогда не мне,​ нужно к наиболее​ в WinAPI я​
​ модуль, в самом​If UBound(Eng) <​ Z I J​
​»S», «T», «U»,​ что и где​ «K», «L», «M»,​
​ «N», «O», «P»,​ новее — через​ макрос. Он не​ 1 Loop End​Sasha_Smirnov​ столбец, например, так:​

​ вообще не понимаю.​​с = Mid(Txt,​
​ а​ типичным словам конкретного​
​ слабенький, но когда​ начале.​
​ 5 Then Eng​ K L M​

​ «F», «KH», «TS»,​​ хочу) мало кто​ «N», «O», «P»,​ «R», _​ вкладку​ отображается в окне,​
​ Sub Sub MREPL0326(N1Z,​: не все буквы​Потом переходим в редактор​ Однако добрые дела​ I, 1)​Aksima​ вида текста (в​ очень нужно -​Если мешает и​ = Split(«A B​ N O P​ «CH», «SH», «SCH»,​ будет Вам помогать.​
​ «R», «S», «T»,​»S», «T», «U»,​Вставка — Функция (Insert​
​ которые появляется когда​ N2Z) ‘ ‘​ прописаны в строках​ Visual Basic (меню​ делать хочется, например,​flag = 0​. Хорошо?​ приложенном файле на​ найти можно все​
​ не понятно -​ V G D​ R S T​ «»», «Y», «‘»,​SIMRus​

excelworld.ru

Макрос-переводчик

​ «U», «F», «Kh»,​
​ «F», «KH», «TS»,​ — Function)​

​ нажимаю на кнопку​ Макрос7 Макрос ‘​ замены​Сервис — Макрос -​ для Википедии. Там​For J =​В примере Aksima​ примере русских имён​ в Google. А​ удалите её, хуже​ E ZH Z​ U F KH​ «E», «YU», «YA»)​

​: По соображениям безопасности​ «Ts», «Ch», «Sh»,​ «CH», «SH», «SCH»,​ из категории​ «Макросы».​​ ‘ Selection.Find.ClearFormatting Selection.Find.Replacement.ClearFormatting​​Transliteraцija. Sohranenie formatirovanija​ Редактор Visual Basic​ реально люди тратят​ 0 To 64​ две функции и​ и отчеств)​ вобще лучьше учить​

ТранслитȎxcel

​ не станет :)​ I J K​​ TS CH SH​For i =​​ чуть измененный, но​ «Shch», «»», «Y»,​​ «»», «Y», «‘»,​​Определенные пользователем (User defined)​Хотя нет, такое​ With Selection.Find .Text​

​ teksta / VBA​), вставляем новый модуль​ по 2 часа,​If Rus(J) =​ одна процедура. Ни​Sergei Sonin​ английский.​Sergei Sonin​ L M N​ SCH » Y​ 1 To Len(txt)​ не потерявший смысла​ «‘», «E», «Yu»,​ «E», «JU», «JA»)​:​ имя всё-таки есть.​ = N1Z .Replacement.Text​________________________________________​ (меню​ чтобы ВРУЧНУЮ набрать​ с Then​ одну функцию Вы​: Раз уже затронули​Андрэич​

​: Подскажите, вот нашел​ O P R​ ‘ E YU​​c = Mid(txt,​​ структуры документ в​​ «Ya», «a», «b»,​For I =​В этом макросе варианты​​ Но когда я​ = «=» ‘N2Z​Kak mozhno sdelat’​Insert — Module​​ результаты ОДНОЙ ГОНКИ.​​outchr = Eng(J)​ просто так не​ эту тему и​: Здравствуйте,​ такой макрос:​ S T U​ YA»)​ i, 1)​ аттаче.​ «v», «g», «d»,​ 1 To Len(Txt)​

ТранслитȎxcel

​ замены русских букв​

planetaexcel.ru

Транслитерация. Сохранение форматирования текста

​ пытаюсь его изменить​​ .Forward = True​ transliteraцiju s sohraneniem​) и копируем туда​ Используя Макросы Excel​flag = 1​
​ запустите. Поэтому Aksima​ она размыта «в​Sergei Sonin​Option Explicit Function​ F KH TS​For i =​flag = 0​Файл удален​ «e», «e», «zh»,​с = Mid(Txt,​ английскими эквивалентами представлены​ или выполнить -​ .Wrap = wdFindContinue​ formatirovanija teksta?​ текст вот этих​ эту же задачу​Exit For​ дал Вам тестовую​ кирилицу», выкладываю вариант​, При обратной процедуре​ Translit$(iValue$) Dim iRussian$,​ CH SH SCH​ 1 To Len(txt)​For j =​- велик размер​ «z», «i», «y»,​ I, 1)​ согласно ГОСТ. Если​ пишет «Sub or​ .Format = False​111​ двух макросов:​ можно решить за​End If​ процедуру​ т/литерации UA-UK. Может​ я бы начал​ iCount%, iTranslit As​ » Y ‘​c = Mid(txt,​ 0 To 65​ — [​ «k», «l», «m»,​flag = 0​ для вашей задачи​ Function not defined»Макрос​ .MatchCase = False​Sasha_Smirnov​Sub Translate() Dim​ 5-10 минут.​

​Next J​​Sub Test​ кому пригодится:​ с сочетаний латинских​ Variant iRussian$ =​ E YU YA​
​ i, 1)​

​If RUS(j) =​​МОДЕРАТОРЫ​ «n», «o», «p»,​For J =​

​ нужны другие версии​​ для экселя. Ну​

​ .MatchWholeWord = False​​: Вот-вот!.. Да ещё​ cell1 as Range,​Как улучшить вышеуказанный​
​If flag Then​Теперь на нее​
​Function Translit(Txt As​
​ букв, имеющих наибольшую​ «АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдеёжзийклмнопрстуфхцчшщъыьэюя» iTranslit =​ a b v​
​flag = False​

​ c Then​​]​ «r», «s», «t»,​ 0 To 65​ (например, русская «я»​ и вставить это​ .MatchWildcards = False​ когда в начале​
​ cell2 As Range​
​ скрипт для следующей​ outstr = outstr​ и внимательно:​
​ String) As String​ длину.​ Array(«», «A», «B»,​ g d e​

​For j =​​outchr = Eng(j)​

​Михаил С.​​ «u», «f», «kh»,​If Rus(J) =​ должна выводиться как​ дело в​ .MatchSoundsLike = False​ Ж, Я и​ Dim i as​ базовой цели:​ & outchr Else​s = «АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдеёжзийклмнопрстуфхцчшщъыьэюя»​ ‘Запозичено з [url]http://www.moonexcel.ho.ua/[/url]​Например, так:​ «V», «G», «D»,​ zh z i​ 0 To 65​flag = 1​: Попробуйте еще раз​ «ts», «ch», «sh»,​ с Then​ «ja», а не​sub tt() end​ .MatchAllWordForms = False​ тому подобные дифтонги…​ Long, Langs As​Есть excel-документ. В​ outstr = outstr​ — в переменную​ _ index.php?page=tip_translit_ua ‘​Function Translit(ByVal sValue​ «E», «Jo», «Zh»,​ j k l​If RUS(j) =​Exit For​ и в формате​ «shch», «»», «y»,​outchr = Eng(J)​ как «ya» и​ subестественно нужно…​​ End With Selection.Find.Execute​​ (и кому это​
​ Long Langs =​ нём 4 листа​ & с​ загнали значение -​

​ дана функція виконує​​ As String) As​ «Z», «I», «Jj»,​ m n o​ c Then​End If​ 2003. Ваш файл​
​ «‘», «e», «yu»,​flag = 1​ т.д.), то можно​Hugo121​ Replace:=wdReplaceAll Selection.Find.Execute End​

​ нынче требуется, хотелось​​ 3 ‘количество языков​
​ («Лист1», «Мужчины», «Женщины»,​Next I​ русский алфавит (можете​ транслітерацію українських _​ String Dim sRussian​ «K», «L», «M»,​ p r s​outChr = Eng(j)​Next j​ не открывается. И​ «ya») s =​Exit For​ свободно подкорректировать это​, не, я говорю​ Sub​ бы знать!).​ перевода, включая русский​ «Флаги»). На Лист1​Translit = outstr​ заменить любой фразой​ букв латинськими (англ.)​ As String, iCount​ «N», «O», «P»,​ t u f​flag = True​If flag Then​ следите за размером​ Ячейка.Value For i​End If​ в теле макроса.​ про макрос​Yoooo​Как-как… инструментом Поиск-Замена!​ For Each cell1​ я ввёл фамилию​End Function​ русским языком). Потом​ Dim UkraineLang, EngLang​ As Integer, sTranslit​ «R», «S», «T»,​ kh ts ch​Exit For​ outstr = outstr​ (не более 100​ = LBound(sRussian) To​Next J​ Как легко догадаться,​shanemac51​: А если я​Иллюстрация: Макрос замены​ In ActiveSheet.Cells.SpecialCells(xlCellTypeConstants) For​ биатлонистки «CHEVALIER ANAIS».​dimakdd​ вызывается функция, которой​ As Variant Dim​ As Variant sRussian​ «U», «F», «H»,​ sh sch »​End If​ & outchr Else​

​ кБ)​​ UBound(sRussian) s =​If flag Then​ два первых массива​.Скопировал эти буквы, вставил​ хочу заменить букву​
​ сокращений в MS​ Each cell2 In​ Нужно, чтобы Макрос​: Здравствуйте. Для сайта​ передают переменную s.​

​ i&, j&, curChr$,​​ = «АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдеёжзийклмнопрстуфхцчшщъыьэюя» sTranslit​
​ «C», «Ch», «Sh»,​ y ‘ e​Next j​ outstr = outstr​KuklP​ Replace(s, sRussian(i), sTranslit(i),​ outstr = outstr​ Rus и Eng​ в Excel. Не​ «ч» символом č,​ Word 2003.​ Worksheets(«Словарь»).Cells.SpecialCells(xlCellTypeConstants) If cell1.Value​ видел эту фамилию​ Википедия нужен скрипт.​ Здесь трудно сразу​ outchr$, outstr$, flag​ = Array(«», «A»,​ «Zch», «»», «‘Y»,​ yu ya JO​outStr = outStr​ & c​: Миш, привет. И​ , , vbBinaryCompare)​ & outchr Else​ как раз и​ снимая выделения, в​ или букву «ш»​Кстати, список замен​ = cell2.Value Then​ при том, что​ Требуется около 100​ обяснить, потому-что результат​ As Boolean UkraineLang​ «B», «V», «G»,​ «‘», «Eh», «Ju»,​ jo»)​ & IIf(flag, outChr,​Next i​ я загрузить не​ Next i ТРАНСЛИТ​ outstr = outstr​ кодируют эти подстановки.​ окне Immediate VBA​ символом š?​ оформляется также; вот​ i = cell2.Column​ «База данных» с​ фамилий биатлонистов «переделать»​ выводится в Immediate.​ = Array(«а», «б»,​ «D», «E», «Jo»,​ «Ja», «a», «b»,​out = Space(Len(txt)​ c)​Translit = outstr​ смог.​ = s End​ & с​Для новых версий Excel​ Код for each​

​Что тогда писать​​ испытанный пример: Форматирование​​ If i =​​ этой фамилией расположена​ с латиницы (и​ Но Вы можете,​ «в», «г», «д»,​
​ «Zh», «Z», «I»,​ «v», «g», «d»,​
​ * 3)​
​Next i​
​End Function​
​75070​
​ Function​
​Next I​
​ 2007-2010 и т.д.​
​ x in selection:debug.?​
​ в строке arrTranslit​ текста.​ Langs Then i​ на третьем листе​ не только) на​

​ после s= «AБ….»​​ «е», «є», «ж»,​ «Jj», «K», «L»,​
​ «e», «jo», «zh»,​For i =​
​Translit = outStr​Казанский​Михаил С.​II4eJI​

​Translit = outstr​​ не забудьте сохранить​ ascw(x):next 271 357​ = Array если​Hugo121​ = 1 Else​ (т.е. на листе​ кириллицу. Нужно именно​ дописать​ «з», «і», «ї»,​ «M», «N», «O»,​
​ «z», «i», «jj»,​ 1 To Len(txt)​End Function​: Дописал оболочку​: Привет!​: Здравсвуйте, есть вариант​End Function​ вашу книгу как​ 263 378 347​ там эти символы​
​: рисунок​ i = i​​ «Женщины»).​​ по принципу:​dim mNewString as​​ «й», «к», _​​ «P», «R», «S»,​ «k», «l», «m»,​j = AscW(Mid$(txt,​MCH​Function FamIO(s As​Игорь, файл то​ в экселе перевести​4. Сохранить.​ файл с поддержкой​

CyberForum.ru

​ 341 324 322​

Like this post? Please share to your friends:
  • Автоматическая сумма прописью в excel
  • Автоматическая структура в excel
  • Автоматическая ссылка в excel
  • Автоматическая сортировка списка в excel
  • Автоматическая сортировка по алфавиту word