Английские буквы вместо русских

Дата публикации: 20.02.2019 12:17:13

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

Можно, конечно, вручную заменять символы латинцы на соответствующую им кириллицу, но гораздо быстрее будет сделать это с помощью макроса. Откройте редактор Visual Basic сочетанием клавиш Alt+F11, вставьте новый модуль (меню Insert - Module) и введите туда его текст:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

Sub Replace_Latin_to_Russian()

Rus = "асекорхуАСЕНКМОРТХ"

Eng = "acekopxyACEHKMOPTX"

For Each cell In Selection

For i = 1 To Len(cell)

c1 = Mid(cell, i, 1)

If c1 Like "[" & Eng & "]" Then

c2 = Mid(Rus, InStr(1, Eng, c1), 1)

cell.Value = Replace(cell, c1, c2)

End If

Next i

Next cell

End Sub

Теперь, если выделить на листе диапазон и запустить наш макрос (Alt+F8 или вкладка Разработчик – кнопка Макросы), то все английские буквы, найденные в выделенных ячейках, будут заменены на равноценные им русские. Только будьте осторожны, чтобы не заменить случайно нужную вам латиницу :)

Первоисточник здесь: https://www.planetaexcel.ru/techniques/7/191/