- Формула транслита с помощью стандартных функций Excel
- Формула на 64 уровня вложенности без заглавных Ъ и Ь
- Скачать файл-шаблон с транслитерацией
- Формулы транслита, итоги
- Функция на VBA
- Заменить русские буквы на английские в Excel и наоборот
Как перевести кириллицу в транслит в Excel?
Технически транслитерация — это замена по списку значений — символов на определенные их эквиваленты в другой раскладке. Значит, и задача состоит в том, чтобы в Excel осуществить эту серию замен.
Удивительно, но сделать такую массовую замену и транслитерировать текст в Excel можно множеством способов. Обо всех подробнее далее.
Наименее изящное, тем не менее, самое простое решение задачи. В Excel для замены символов есть функция ПОДСТАВИТЬ (англ. SUBSTITUTE). Формула принимает на вход 4 аргумента:
- Текст для обработки, в котором будет производиться замена (текст);
- Заменяемый фрагмент (стар_текст);
- На что заменить (нов_текст);
- Какой по счету встреченный в значении фрагмент заменить. (номер_вхождения).
Четвертый параметр является опциональным и, если он не заполнен, заменяются все встреченные в тексте фрагменты.
Как раз то, что нам нужно! Поскольку 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.
По ссылке можно скачать файл-шаблон, в котором применены эти функции.
Формулы транслита, итоги
У подхода с созданием таких мега формул есть свои плюсы и минусы. Минус один – они громоздки и такое не так-то просто сходу набрать. Поэтому их нужно где-то хранить и копировать при необходимости.
Плюсы в основном происходят из недостатков 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 варианта замены:
- Обратный транслит (из латиницы в кириллицу);
- “Смена раскладки” – asdf -> фыва;
- Замена букв с идентичным начертанием — кириллица в латиницу;
- Аналогичная замена английских букв, похожих на русские, на действительно русские.
Последние два пункта тесно связаны с ситуациями, когда удалось найти русские слова, содержащие латиницу или английские слова с кириллическими символами, и теперь нужно исправить такой текст.
Чтобы произвести транслитерацию, достаточно просто выделить столбец с данными и вызвать нужную процедуру. Данные изменятся на месте.
Нужно сделать транслитерацию русского на латиницу в Excel или наоборот?
Быстро решить эту и более 500 других задач поможет надстройка !SEMTools.
Транслитерация в excel довольно распространенная задача. Сделать транслит в Excel — значит, русские буквы превратить в английские или латинские
Часто неопытные пользователи делают транслитерацию в excel вручную, а более опытные используют многоэтажные формулы с подстановкой значений.
В этой статье мы научимся создавать небольшую пользовательскую функцию, которая умеет делать транслитерацию в Excel. В данном случае не нужно знать VBA, поскольку текст функции есть в статье, его можно просто скопировать.
Видео для тех, кто не любит читать
Итак, у нас есть таблица с ФИО сотрудников. Нужно сделать транслитерацию этих данных.
1. Нажмем клавиши Alt + F11, чтобы перейти в редактор Visual Basic.
2. В окне редактора Visual Basic перейдем в меню Insert — Module
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. Перейдите на вкладку меню Формулы — Вставить функцию.
7. В выпадающем списке Категория выберите Определенные пользователем.
8. Созданная для транслитерации функция называется Translit. Выделите ее и нажмите Ок.
9. Установив курсор в поле Txt, щелкните по первой ячейке, для которой нужно сделать транслитерацию. Нажмите Ок.
10. Скопируйте формулу до конца списка, потянув за нижний правый уголок выделенной ячейки. Транслитерация в 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):
В этом макросе варианты замены русских букв английскими эквивалентами представлены согласно ГОСТ. Если для вашей задачи нужны другие версии (например, русская «я» должна выводиться как «ja», а не как «ya» и т.д.), то можно свободно подкорректировать это в теле макроса. Как легко догадаться, два первых массива Rus и Eng как раз и кодируют эти подстановки.
Для новых версий Excel 2007-2010 и т.д. не забудьте сохранить вашу книгу как файл с поддержкой макросов (Macro Enabled Workbook), т.е. в формате XLSM.
Ссылки по теме
- Макрос-переводчик
- Преобразование русского текста в транслит с помощью надстройки PLEX
Очень часто требуется преобразовать русский текст (кириллицу) в английский (транслит), не перевести, а написать русские слова английскими буквами.
Такое, например, может понадобиться для импорта данных в какую-нибудь программу, базу данных, которая не поддерживает русские буквы. Задача распространенная, но стандартными средствами Excel не решается.
Мы предлагаем вам два варианта решения данной задачи.
Содержание
- 1 Первый способ транслитерировать русский текст
- 2 Второй способ перевода русского текста в транслит в 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 с помощью пользовательской функции
Есть специальный макрос для создания пользовательской функции.
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)
и в открывшееся окно вставляете данный код и закрываете это окно.
После этого в любом месте данного листа (а при вставке кода с помощью Insert — Module — в любом месте данной книги) вы сможете использовать пользовательскую функцию, которую можно вызвать выбрав:
Вставка — Функция (Insert — Function)
в Excel 2013 Функция — Вставить функцию
Выбираем Категория: определенные пользователем, в данном списке должна появится наша функция Translit
Можно просто в нужной ячейке набрать =Transit(ссылка_на_русский_текст)
После этого протягиваем формулу и получаем нужный нам результат.
Если вы присмотритесь в полученный результат, то увидите, что данные немного отличаются, например
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) В связи с необходимостью копирования диапазона в буфер обмена (и последующей вставки в другую программу), была отключена функция обработки выделенных несмежных диапазонов.
Программа обрабатывает ячейки только в используемом диапазоне листа, независимо от того, какой диапазон выделен изначально.
Т.е. вы можете выделить столбец целиком — макрос автоматически уменьшит высоту выделенной области, чтобы ограничить обрабатываемый диапазон только используемыми ячейками.
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», 1040KuklPDim x, p2 данных,только макросы. Мне надо перевести рабочего файла вы Workbook), т.е. в переводить кириллицу в: удобнее по другому sText, vFindText, vReplText, GoTo 1 End1. Как увеличитьBjörn Ferry - Передать к обработке «с», «т», «у», «Sh», «Zch», «»», «u», «f», «h»,Select Case j: Леш,дружище, это неFor Each xSIMRus столбик имени сможете использовать эту формате 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 «ш», «ъ», «ы»,Теперь можно вернуться на
«просматривает» только 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 Tok = 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 Nextk = k + 2
равно, спасибо.End Function — [II4eJIhttps://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, RngMid(out, k) = друга поддерживаем. А: ну и мой: В архив, предпочтительно: Две колонки окошком «В русский», можно попробовать так:Function Translit(Txt As
«e» MK00 «ё», «ц») vReplText =
в на листе
если убрать из
в основном, называются буквами mNewString =UnTranslit «Ь», «Ю», «Я», To 66 sValue
As Range Set
Mid$(txt, i, 1) ты у нас вариант .rarEN — 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 SelectMCH: Протестил Ваш вариант,: ЗЫ и этотB — Б excel соответствие русских букв Variant Rus = «z» MK00 «и», _ «eh», «ju», слова из соседней ‘количество языков перевода,Правда, как с Удачи. «b», «v», «g», , , vbBinaryCompare) диапазон For EachNext: он подходит полностью!Спасибо! файл не открывается.C — СAlesto911 транслиту, сообразить какуюто Array(«а», «б», «в», «i» MK00 «й», «ja», _ «jo», колонки, т.е. переведены включая русский использованием транслита изобразитьAlexander_G «d», «e», «je», ‘MS Excel 2000 rCell In RngTranslitFast = 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
после транслитерации?dimakdddimakdd: В 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 StringAlexM тема и создана. текст новой функции, «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»,
к каждой букве
куда поставить Optionnerv это учтено :) j%, outchr$, outstr$: Существует задача транслитерировать в кириллицу файле: _ «k», «l», .Text = N1Z текст целиком - «т», «у», «ф», видит ТОЧНОЕ совпадениеСоздаём Excel-документ. ВRus = Array(«а», If UkraineLang(j) = «u», «V», «v», транслит…на руском Explicit, добавляется к: и еще небольшой
Alex_STDim 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 NextSergei 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 SubIvanOK документа в другой. «о», «п», «р», = 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 в указанном примере.Что касается OptionEnd 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 = 3Dim 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», Вопрос был не частотности применительно к (например, ч/з функциюНу а OptionStatic 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 EndSasha_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.ClearFormattingTransliteraцija. Sohranenie formatirovanija Редактор Visual Basic реально люди тратят 0 To 64 две функции и и отчеств) вобще лучьше учить
не станет :) I J K TS CH SHFor 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 YUc = Mid(txt, структуры документ в «Ya», «a», «b»,For I =В этом макросе варианты Но когда я = «=» ‘N2ZKak mozhno sdelat’Insert — Module результаты ОДНОЙ ГОНКИ.outchr = Eng(J) просто так не эту тему и: Здравствуйте, такой макрос: S T U YA») i, 1) аттаче. «v», «g», «d», 1 To Len(Txt)
замены русских букв
planetaexcel.ru
Транслитерация. Сохранение форматирования текста
пытаюсь его изменить .Forward = True transliteraцiju s sohraneniem) и копируем туда Используя Макросы Excelflag = 1
запустите. Поэтому Aksima она размыта «вSergei SoninOption Explicit Function F KH TSFor 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 = False111 двух макросов: можно решить заEnd If процедуру т/литерации UA-UK. Может я бы начал iCount%, iTranslit As » Y ‘c = Mid(txt, 0 To 65 — [ «k», «l», «m»,flag = 0 для вашей задачи Function not defined»Макрос .MatchCase = FalseSasha_SmirnovSub Translate() Dim 5-10 минут.
Next JSub 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 Elses = «АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдеёжзийклмнопрстуфхцчшщъыьэюя» ‘Запозичено з [url]http://www.moonexcel.ho.ua/[/url]Например, так: «V», «G», «D», zh z i 0 To 65flag = 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 lIf 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 ThenEnd 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 soutChr = Eng(j)Next j не открывается. И «ya») s =Exit For свободно подкорректировать это, не, я говорю Sub бы знать!). перевода, включая русский «Флаги»). На Лист1Translit = outstr заменить любой фразой букв латинськими (англ.) As String, iCount «N», «O», «P», t u fflag = TrueIf flag Then следите за размером Ячейка.Value For iEnd If в теле макроса. про макросYooooКак-как… инструментом Поиск-Замена! For Each cell1 я ввёл фамилиюEnd Function русским языком). Потом Dim UkraineLang, EngLang As Integer, sTranslit «R», «S», «T», kh ts chExit For outstr = outstr (не более 100 = LBound(sRussian) ToNext 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 ‘ eNext j outstr = outstrKuklP 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 JOoutStr = 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,MCHFunction FamIO(s AsИгорь, файл то в экселе перевести4. Сохранить. файл с поддержкой
CyberForum.ru
341 324 322