7

Замена кириллицы на латиницу с одинаковым написанием символов на VBA

Возникла задача замены в маркировке русских букв, которые написаны разными ленивыми или невнимательными людьми, на латинские. В результате выглядящий одинаково текст будет и сравниваться одинаково.

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

Function CyrillicToLatinSame(inputStr As String) As String

Dim cyrillicChars As String

Dim latinChars As String

Dim i As Integer

Dim resultStr As String

' кириллические символы, которые выглядят как латиница

cyrillicChars = "АЕКМОСТВНРХаеосрх"

' латинские символы, которые выглядят как кириллица

latinChars = "AEKMOCTBHPXaeocpx"

resultStr = inputStr

' замена кириллицы на латиницу с одинаковым начертанием

For i = 1 To Len(cyrillicChars)

resultStr = Replace(resultStr, Mid(cyrillicChars, i, 1), Mid(latinChars, i, 1),1,-1,vbBinaryCompare)

Next i

CyrillicToLatinSame = resultStr

End Function

а также на pastedbin с форматированием

MS, Libreoffice & Google docs

756 постов15K подписчик

Правила сообщества

1. Не нарушать правила Пикабу

2. Публиковать посты соответствующие тематике сообщества

3. Проявлять уважение к пользователям

4. Не допускается публикация постов с вопросами, ответы на которые легко найти с помощью любого поискового сайта.

По интересующим вопросам можно обратиться к автору поста схожей тематики, либо к пользователям в комментариях


Важно - сообщество призвано помочь, а не постебаться над постами авторов! Помните, не все обладают 100 процентными знаниями и навыками работы с Office. Хотя вы и можете написать, что вы знали об описываемом приёме раньше, пост неинтересный и т.п. и т.д., просьба воздержаться от подобных комментариев, вместо этого предложите способ лучше, либо дополните его своей полезной информацией и вам будут благодарны пользователи.

Утверждения вроде "пост - отстой", это оскорбление автора и будет наказываться баном.