Макрос транслитерация 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
    • Формула на 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.

Function Translit(ByVal txt As String) As String
    iRussian$ = "абвгдеёжзийклмнопрстуфхцчшщъыьэюя"
    iTranslit = Array("", "a", "b", "v", "g", "d", "e", "jo", "zh", "z", "i", "jj", "k", _
                      "l", "m", "n", "o", "p", "r", "s", "t", "u", "f", "h", "c", "ch", _
                      "sh", "zch", "''", "'y", "'", "eh", "ju", "ja")
    For iCount% = 1 To 33
        txt = Replace(txt, Mid(iRussian$, iCount%, 1), iTranslit(iCount%), , , vbTextCompare)
    Next
    Translit$ = txt
End Function

Sub ПримерИспользованияФункцииTranslit()
    txt = "проверка работы транслита"
    newtxt = Translit(txt) ' результат = строка "proverka rabot'y translita"
    MsgBox "Строка """ & txt & """" & vbNewLine & "преобразована в строку """ _
         & newtxt & """", vbInformation, "Результат обработки"
End Sub

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

(добавлено в связи с просьбой выполнить обратную транслитерацию)
К сожалению, процесс обратной транслитерации весьма затруднён (я бы даже сказал, что в общем случае невозможно сделать такую функцию, которая преобразовывала бы строку после транслитерации к исходному виду).

Попытаюсь объяснить, почему так происходит:
Допустим, в качестве исходной строки у нас будет текст «щзч схш жзх»

Sub ПримерИспользованияФункцииTranslit()
    txt = "щзч схш жзх"
    newtxt = Translit(txt)
    Debug.Print newtxt    ' результат = строка "zchzch shsh zhzh"

    MsgBox "Строка """ & txt & """" & vbNewLine & "преобразована в строку """ _
           & newtxt & """", vbInformation, "Результат обработки"
End Sub

И что же мы видим на выходе?
А вот что: «zchzch shsh zhzh»

Достаточно похожие сочетания букв, не правда ли?
И как теперь макросу определить, что означает сочетание «zch sh zh» — «щ сх ж» или «зч ш ж»?
Или, может, «зч сх зх»? Все варианты для макроса ведь равнозначны…

А сочетание «zhzh» следует перевести как «зхзх» или как «жж»?
То же самое касается некоторых других буквосочетаний.

Специально проверил транслитерацию подобных сочетаний на популярном сервисе http://www.translit.ru/
Результат — при обратном переводе на русский исходная строка изменилась: схш жзх —> shsh zhzh —> шш жж

Вывод: учитывая возможное количество неопределённостей, проще обратную транслитерацию выполнять вручную.


Другой вариант функции:

Function Translit(ByVal txt As String) As String        ' с учётом регистра символов
    txtRussian$ = "абвгдеёжзийклмнопрстуфхцчшщъыьэюя"
    arrTranslit = 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", "tch", _
                        "sh", "sch", "", "y", "", "e", "yu", "ya")
    For iCount% = 1 To 33
        txt$ = Replace(txt$, Mid(txtRussian$, iCount%, 1), arrTranslit(iCount%), , , vbBinaryCompare)      ' строчные
        txt$ = Replace(txt$, UCase(Mid(txtRussian$, iCount%, 1)), UCase(arrTranslit(iCount%)), , , vbBinaryCompare)     ' прописные
    Next
    Translit$ = txt$
End Function

Результат работы (другой набор символов для замены, учитывается регистр)

Исходная строка: «А-Б-В-Г-Д-Е-Ё-Ж-З-И-Й-К-Л-М-Н-О-П-Р-С-Т-У-Ф-Х-Ц-Ч-Ш-Щ-Ъ-Ы-Ь-Э-Ю-Я»
Итоговая строка: «A-B-V-G-D-E-E-ZH-Z-I-Y-K-L-M-N-O-P-R-S-T-U-F-KH-TS-TCH-SH-SCH—Y—E-YU-YA»

  • 53506 просмотров

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

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

Транслитерация в 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

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

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

Сохраняем файл 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(НомерЯчейки)

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

Такое, например, может понадобиться для импорта данных в какую-нибудь программу, базу данных, которая не поддерживает русские буквы. Задача распространенная, но стандартными средствами 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

На чтение 5 мин. Просмотров 2.7k. Опубликовано 15.12.2019

Содержание

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

Описание функции

Функция =ТРАНСЛИТ(ТЕКСТ) имеет всего один аргумент

  • ТЕКСТ — строка (или ссылка на ячейку), к которой необходимо применить транслитерацию текста.

Пример

Следующий пример демонстрирует работу данной функции:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Ivanov Serge j Petrovich и Ivanov Serge y Petro vich

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

  • Начиная с Excel 2007 не забудьте сохранить файл в формате поддержки макросов — xlsm, иначе макрос не сохранится;
  • Данный макрос необходимо вставлять в каждую отдельную книгу, в которой вы хотите, чтобы он работал;
  • Иногда требуется, чтобы была не встроенная функция, а макрос при запуске которого текст будет переводится в транслит, в этом случае нужно вставить код, указанный ниже. В итоге, для перевода текста в transit необходимо выделить нужный текст на русском языке (диапазон ячеек) и запустить макрос «Translit» и данный текст будет обработан.
  • Важно! Перед копированием данного кода, обязательно переключите раскладку клавиатуры на русский язык.

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

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

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

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

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

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

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

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

Содержимое скрыть 1 Формула транслитерации с использованием стандартных функций Excel 1.1 Формула для 64 уровней вложенности без прописных букв b и b 1.2 Скачать файл шаблона с транслитерацией 1.3 Формулы транслитерации, итоги 2 Функция VBA 3 Заменить русские буквы английскими буквами в Excel и наоборот Пример результата транслитерации в Excel

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

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

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

Наименее элегантное, но самое простое решение проблемы. В Excel есть функция REPLACE для замены символов. Формула принимает 4 аргумента в качестве входных данных:

  1. Текст для обработки, в котором будет произведена замена (текст)
  2. Фрагмент для замены (old_text)
  3. На что заменить (новый_текст)
  4. Какой фрагмент встречается по смыслу, подлежащему замене. (число_звук)

ЗАМЕНА формулы синтаксиса Excel

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

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

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

  • В русском алфавите 33 буквы
  • Идеальная формула транслитерации должна сохранять заглавные буквы во время замены. К счастью, функция REPLACE чувствительна к регистру. Получается, нужно сделать не 33, а 66 замен. Но
  • в Excel есть ограничение на количество уровней вложенности в формуле: 64.

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

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

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

Вы знаете слова, которые начинаются на боб? 🙂

Похоже, их пропустили. Так что давайте сохраним два уровня вложенности и настроимся на пределы Excel (66 — 2 = 64)!

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

= ПОДСТАВИТЬ (ПОДСТАВИТЬ (ПОДСТАВИТЬ (ПОДСТАВИТЬ (ПОДСТАВИТЬ) (ПОДСТАВИТЬ (ПОДСТАВИТЬ)) (ПОДСТАВИТЬ (ПОДСТАВИТЬ) (ПОДСТАВИТЬ (ПОДСТАВИТЬ) (ЗАМЕНА (A1; «)»; « В »;« В »);« Г »;« Г »);« Д »;« Д »);« Е »;« Д »);« Е »;« Йо »);« Ж »;« Ж » «);» З «;» Z «);» И «;» I «);» Y «;» Y «);» К «;» K «);» Л «;» L «);» М »;« M »);« N »;« N »);« O »;« O »);« P »;« P »);« P »;« R »);« C »;« S »); «Т»; «Т»); «У»; «U»); «Ф»; «F»); «Х»; «Х»); «Ц»; «Ц»); «Ч»; «Ч»); «Ш»; «Ш»); «Щ»; «Щ»); «Y»; «Y»); «А ТАКЖЕ»; «А ТАКЖЕ»); «U»; «Ю»); «Я ЕСМЬ»; «Я»); «а»; «а»); «б»; «б»); «с»; «v»); «грамм»; «грамм»); «д»; «г»); «А также»; «А также»); «А также»; «йо»); «е»; «ж»); «з»; «з»); «е»; «я»); «у»; «у»); «к»; «к»); «L»; «L»); «м»; «м»); «п»; «п»); «или»; «или»); «п»; «п»); «п»; «r»); «c»; «s»); «t»; «t»); «y»; «u»); «f»; «f»); «x»; «kh»); «ц»; «ц»); «час»; «ч»); «ш»; «ш»); «u»; «щ»); «ъ»; «у»); «с»; «y»); «b»; «»); «e»; «e»); «yu»; «yu»); «i»; «ya»)

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

Вышеупомянутая формула, основанная на функции REPLACE с различными условиями, может быть изменена: вместо явного написания текстовых значений вы можете основывать ее на определенных ячейках. Почему такой подход дешевле? Тот факт, что формулу менять не нужно, а данные для замены представлены в удобном для чтения и редактирования формате в столбцах A и B.

Транслитерация с таблицей подстановок и формулой с 64 уровнями вложенности Транслитерация с таблицей подстановок и формулой с 64 уровнями вложенности

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

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

Подход к созданию таких мега-формул имеет свои плюсы и минусы. Есть только один недостаток — они громоздкие, и их не так-то просто набрать сразу. Поэтому их нужно где-то хранить и при необходимости копировать.
Плюсы в основном связаны с недостатками кода VBA:

  • По иронии судьбы формулы электронных таблиц будут работать в любой версии Excel на любом компьютере, даже с самыми строгими политиками защиты данных
  • Их легко редактировать, если вам нужно переделать правила транслитерации, и они довольно просты
  • Переносной, т.е формулы не «улетают», если их отправить кому-то и открыть на другом компьютере

Функция на VBA

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

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

Функция транслита (x как строка) как строка cyr = «abvgdeozhziyklmnoprstufkhtschshshchshch’yueyuya» 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 «) Для i = от 1 до 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 -> fiva
  3. Замена букв в едином стиле — с кириллицы на латиницу
  4. Аналогичная замена английских букв, похожих на русские, на истинно русские

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

Главная » 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​

Понравилась статья? Поделить с друзьями:
  • Макросы excel 2007 with
  • Макрос таймера для excel
  • Макрос штрих кодов excel
  • Макросы excel 2007 pdf
  • Макрос штрих кода для excel