Макрос-переводчик
Обучим немецкому
языку по методу гестапо.
Работающие в иностранных компаниях сотрудники часто вынуждены готовить по два одинаковых отчета для отечественного и зарубежного своего начальства - на русском и английском языках. Цифры в этих отчетах, естественно, одинаковые, а меняются только подписи, заголовки и другой текст.
Такую задачу можно решить более изящно. Создаем новый лист в таком отчете и называем его "Словарь". Выписываем на этот лист в любом порядке все слова, которые надо автоматически переводить. Для каждого языка добавляем новый столбец, например, так:
Потом переходим в редактор Visual Basic (меню Сервис - Макрос - Редактор Visual Basic), вставляем новый модуль (меню Insert - Module) и копируем туда текст вот этих двух макросов:
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
Теперь можно вернуться на лист с отчетом и запустить макрос Translate через меню Сервис - Макрос - Макросы (Tools - Macro - Macros) или нажав ALT+F8. Все слова из вашего отчета, найденные в на листе Словарь, будут заменены на слова из соседней колонки, т.е. переведены на другой язык. Запуская макрос несколько раз, мы будем по кругу переводить наш отчет последовательно на русский-английский-немецкий-русский-английский-и т.д. Выглядеть это будет так:
Praktisch, nicht wahr? :)
Ссылки по теме
- Что такое макросы, куда вставлять код макроса на VBA, как их использовать
- Преобразование русского текста в транслит
А даже если переведёт функции, они будут работать только в английском Экселе, да? Можно ли как-нибудь сделать так, чтобы функции работали в Экселях всех языков?
Тоже самое ко всем надписям.
Вуоля! Вы просто сверху меняете язык, а он вам меняет значение ячейки.
изначально все заполнено на русском. запускаю макрос - отлично все на англ... а вот обратно некоторые позиции не перевелись на русский и получились пустые ячейки...
как так?))))
Есть некоторые исключения (например с форматом дат), но их можно побороть, если подготовиться.
Это же так важно- тратить время и усилия на действительно полезные вещи