Новости‎ > ‎

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

Отправлено 20 февр. 2019 г., 04:17 пользователем Dmitry Sh   [ обновлено 20 февр. 2019 г., 04:19 ]


Это уже, как правило, чисто человеческий фактор. При вводе текстовых данных в ячейку вместо русских букв случайно вводятся похожие английские ("це" вместо русской "эс", "игрек" вместо русской "у" и т.д.) Причем снаружи все прилично, ибо начертание у этих символов иногда абсолютно одинаковое, но 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/

Comments