Замена кириллицы на латиницу с одинаковым написанием символов на 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 с форматированием