Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Имена с латиницы на Кириллицу - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Имена с латиницы на Кириллицу (Макросы/Sub)
Имена с латиницы на Кириллицу
dimakdd Дата: Воскресенье, 12.11.2017, 18:16 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 7
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Здравствуйте. Для сайта Википедия нужен скрипт. Требуется около 100 фамилий биатлонистов "переделать" с латиницы (и не только) на кириллицу. Нужно именно по принципу:

Martin Fourcade - Мартен Фуркад
Björn Ferry - Бьёрн Ферри
Ole Einar Bjørndalen - Уле-Эйнар Бьёрндален

Вдобавок, в зависимости от гонки фамилии могут меняться местами.

Т.е. нужно что-то вроде массовой замены "Найти" и "Заменить на".

У кого-нибудь есть идеи? Спасибо :))
 
Ответить
СообщениеЗдравствуйте. Для сайта Википедия нужен скрипт. Требуется около 100 фамилий биатлонистов "переделать" с латиницы (и не только) на кириллицу. Нужно именно по принципу:

Martin Fourcade - Мартен Фуркад
Björn Ferry - Бьёрн Ферри
Ole Einar Bjørndalen - Уле-Эйнар Бьёрндален

Вдобавок, в зависимости от гонки фамилии могут меняться местами.

Т.е. нужно что-то вроде массовой замены "Найти" и "Заменить на".

У кого-нибудь есть идеи? Спасибо :))

Автор - dimakdd
Дата добавления - 12.11.2017 в 18:16
RAN Дата: Воскресенье, 12.11.2017, 18:27 | Сообщение № 2
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
Функции, способные
"переделать" с латиницы (и не только) на кириллицу

в основном, называются "транслит".
Ищите, и обрящете.
Правда, как с использованием транслита изобразить Fernand Renault, большой вопрос.


Быть или не быть, вот в чем загвоздка!
 
Ответить
СообщениеФункции, способные
"переделать" с латиницы (и не только) на кириллицу

в основном, называются "транслит".
Ищите, и обрящете.
Правда, как с использованием транслита изобразить Fernand Renault, большой вопрос.

Автор - RAN
Дата добавления - 12.11.2017 в 18:27
buchlotnik Дата: Воскресенье, 12.11.2017, 19:07 | Сообщение № 3
Группа: Заблокированные
Ранг: Участник клуба
Сообщений: 3442
Репутация: 929 ±
Замечаний: 20% ±

2010, 2013, 2016 RUS / ENG
Хм... а по какому принципу Ole Einar превращается в Уле-Эйнар (через дефис). Что-то подсказывает, что для
Цитата
100 фамилий
проще ручками таблицу соответствий сделать, чем заморачиваться на скрипты под разные языки
 
Ответить
СообщениеХм... а по какому принципу Ole Einar превращается в Уле-Эйнар (через дефис). Что-то подсказывает, что для
Цитата
100 фамилий
проще ручками таблицу соответствий сделать, чем заморачиваться на скрипты под разные языки

Автор - buchlotnik
Дата добавления - 12.11.2017 в 19:07
dimakdd Дата: Воскресенье, 12.11.2017, 22:27 | Сообщение № 4
Группа: Пользователи
Ранг: Прохожий
Сообщений: 7
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Ой, СПАСИБО за оперативность. Уже РЕШИЛ проблему. Просто думал, что у меня уникально-сложная ситуация. Оказалось всё просто - ответы с этой темы натолкнули меня на идеи, и вот здесь моя проблема решена:

Макрос-переводчик
http://www.planetaexcel.ru/techniques/7/56/

Создаём Excel-документ. В документе создаём "вторую книгу". Во второй книге, в столбце "А" прописываем фамилии на языке-оригинале. В столбце "B" прописываем фамилии так, как хотим их видеть на русском.
Копируем фамилии из pdf-документа с результатами гонок, вставляем в "первую книгу" документа, создаём и запускаем нижеследующий макрос:

[vba]
Код
Sub Translate()
Dim cell1 as Range, cell2 As Range
Dim i as Long, Langs As Long

Langs = 3 'количество языков перевода, включая русский

For Each cell1 In ActiveSheet.Cells.SpecialCells(xlCellTypeConstants)
For Each cell2 In Worksheets("Словарь").Cells.SpecialCells(xlCellTypeConstants)
If cell1.Value = cell2.Value Then
i = cell2.Column
If i = Langs Then i = 1 Else i = i + 1
cell1.Value = Worksheets("Словарь").Cells(cell2.Row, i).Value
GoTo 1
End If
Next cell2
1:   Next cell1

End Sub
[/vba]


Сообщение отредактировал dimakdd - Воскресенье, 12.11.2017, 22:42
 
Ответить
СообщениеОй, СПАСИБО за оперативность. Уже РЕШИЛ проблему. Просто думал, что у меня уникально-сложная ситуация. Оказалось всё просто - ответы с этой темы натолкнули меня на идеи, и вот здесь моя проблема решена:

Макрос-переводчик
http://www.planetaexcel.ru/techniques/7/56/

Создаём Excel-документ. В документе создаём "вторую книгу". Во второй книге, в столбце "А" прописываем фамилии на языке-оригинале. В столбце "B" прописываем фамилии так, как хотим их видеть на русском.
Копируем фамилии из pdf-документа с результатами гонок, вставляем в "первую книгу" документа, создаём и запускаем нижеследующий макрос:

[vba]
Код
Sub Translate()
Dim cell1 as Range, cell2 As Range
Dim i as Long, Langs As Long

Langs = 3 'количество языков перевода, включая русский

For Each cell1 In ActiveSheet.Cells.SpecialCells(xlCellTypeConstants)
For Each cell2 In Worksheets("Словарь").Cells.SpecialCells(xlCellTypeConstants)
If cell1.Value = cell2.Value Then
i = cell2.Column
If i = Langs Then i = 1 Else i = i + 1
cell1.Value = Worksheets("Словарь").Cells(cell2.Row, i).Value
GoTo 1
End If
Next cell2
1:   Next cell1

End Sub
[/vba]

Автор - dimakdd
Дата добавления - 12.11.2017 в 22:27
dimakdd Дата: Четверг, 16.11.2017, 12:56 | Сообщение № 5
Группа: Пользователи
Ранг: Прохожий
Сообщений: 7
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
И позвольте ещё помощь. Я просто в Макросах Excel, на ДАННЫЙ МОМЕНТ, вообще не понимаю. Однако добрые дела делать хочется, например, для Википедии. Там реально люди тратят по 2 часа, чтобы ВРУЧНУЮ набрать результаты ОДНОЙ ГОНКИ. Используя Макросы Excel эту же задачу можно решить за 5-10 минут.

Как улучшить вышеуказанный скрипт для следующей базовой цели:
Есть excel-документ. В нём 4 листа ("Лист1", "Мужчины", "Женщины", "Флаги"). На Лист1 я ввёл фамилию биатлонистки "CHEVALIER ANAIS". Нужно, чтобы Макрос видел эту фамилию при том, что "База данных" с этой фамилией расположена на третьем листе (т.е. на листе "Женщины").

И 2 коротких вопроса:

1. Как увеличить у Макроса "зону просмотра столбцов" ?? Т.е. этот Макрос "просматривает" только 3 столбца на листе "Словарь" и потом возвращаеться к 1-му столбцу этого же листа. Нужно, чтобы "просматривал" хотя бы 5 столбцов, И НЕ возвращался к 1-му столбцу

2. Что будет, если убрать из макроса строчку:
Langs = 3 'количество языков перевода, включая русский
Бывает, что при "переводе" языков распознования будет 1 (английский), или до 5 (англ, русский, французский, немецкий, норвежский).
К сообщению приложен файл: Wikipedia_.xls (81.0 Kb)


Сообщение отредактировал dimakdd - Четверг, 16.11.2017, 12:59
 
Ответить
СообщениеИ позвольте ещё помощь. Я просто в Макросах Excel, на ДАННЫЙ МОМЕНТ, вообще не понимаю. Однако добрые дела делать хочется, например, для Википедии. Там реально люди тратят по 2 часа, чтобы ВРУЧНУЮ набрать результаты ОДНОЙ ГОНКИ. Используя Макросы Excel эту же задачу можно решить за 5-10 минут.

Как улучшить вышеуказанный скрипт для следующей базовой цели:
Есть excel-документ. В нём 4 листа ("Лист1", "Мужчины", "Женщины", "Флаги"). На Лист1 я ввёл фамилию биатлонистки "CHEVALIER ANAIS". Нужно, чтобы Макрос видел эту фамилию при том, что "База данных" с этой фамилией расположена на третьем листе (т.е. на листе "Женщины").

И 2 коротких вопроса:

1. Как увеличить у Макроса "зону просмотра столбцов" ?? Т.е. этот Макрос "просматривает" только 3 столбца на листе "Словарь" и потом возвращаеться к 1-му столбцу этого же листа. Нужно, чтобы "просматривал" хотя бы 5 столбцов, И НЕ возвращался к 1-му столбцу

2. Что будет, если убрать из макроса строчку:
Langs = 3 'количество языков перевода, включая русский
Бывает, что при "переводе" языков распознования будет 1 (английский), или до 5 (англ, русский, французский, немецкий, норвежский).

Автор - dimakdd
Дата добавления - 16.11.2017 в 12:56
InExSu Дата: Воскресенье, 19.11.2017, 02:00 | Сообщение № 6
Группа: Друзья
Ранг: Ветеран
Сообщений: 648
Репутация: 96 ±
Замечаний: 0% ±

Excel 2010, 365
Привет!
Пожалуйста, в книге покажите:
1. Что у Вас есть.
2. Что Вы хотите.


Разработчик Битрикс24 php, Google Apps Script, VBA Excel Windows/Mac
 
Ответить
СообщениеПривет!
Пожалуйста, в книге покажите:
1. Что у Вас есть.
2. Что Вы хотите.

Автор - InExSu
Дата добавления - 19.11.2017 в 02:00
dimakdd Дата: Среда, 29.11.2017, 23:21 | Сообщение № 7
Группа: Пользователи
Ранг: Прохожий
Сообщений: 7
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Вот пример. Excel-документ. В нём 3 листа под названиями: Лист 0, Men, Women.
На Лист 0 ввожу BABIKOV ANTON. Используя текущую версию скрипта получаю на "листе 0" - BABIKOV Anton. Т.е. скрипт просматривает лист "Men" и когда видит ТОЧНОЕ совпадение BABIKOV ANTON, то на "листе 0" заменяет значение ячейки на
значение ближайшей правой ячейки на листе "Men". ЭТО ОТЛИЧНО.

Однако когда на "листе 0" ввожу AKIMOVA TATIANA, исполняю скрипт, ничего не происходит. Т.к. ячейка с содержанием AKIMOVA TATIANA расположена на листе "Women", который сприпт не видит.

Т.е. как сделать так, чтобы скрипт "просматривал" ВСЕ листы, которые созданы в Excel-документе ??
К сообщению приложен файл: Wikipedia_-_-2-.xls (78.5 Kb)
 
Ответить
СообщениеВот пример. Excel-документ. В нём 3 листа под названиями: Лист 0, Men, Women.
На Лист 0 ввожу BABIKOV ANTON. Используя текущую версию скрипта получаю на "листе 0" - BABIKOV Anton. Т.е. скрипт просматривает лист "Men" и когда видит ТОЧНОЕ совпадение BABIKOV ANTON, то на "листе 0" заменяет значение ячейки на
значение ближайшей правой ячейки на листе "Men". ЭТО ОТЛИЧНО.

Однако когда на "листе 0" ввожу AKIMOVA TATIANA, исполняю скрипт, ничего не происходит. Т.к. ячейка с содержанием AKIMOVA TATIANA расположена на листе "Women", который сприпт не видит.

Т.е. как сделать так, чтобы скрипт "просматривал" ВСЕ листы, которые созданы в Excel-документе ??

Автор - dimakdd
Дата добавления - 29.11.2017 в 23:21
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Имена с латиницы на Кириллицу (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!