Замена кириллицы на латиницу с одинаковым написанием символов на 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. Хотя вы и можете написать, что вы знали об описываемом приёме раньше, пост неинтересный и т.п. и т.д., просьба воздержаться от подобных комментариев, вместо этого предложите способ лучше, либо дополните его своей полезной информацией и вам будут благодарны пользователи.
Утверждения вроде "пост - отстой", это оскорбление автора и будет наказываться баном.