Подскажите пожалуйста, есть столбец с цифрами и буквами типа “00566СDН” или “LGО” где буквы C, О, H могут быть как Русскими так и английскими, можно желательно формулами или макросами в соседние 2 столбца вывести варианты, первый столбец все похожие буквы заменить на английские, во втором столбце все похожие буквы заменить на русские. Может темы были уже помогите пожалуйста?
Доброго времени суток!
Подскажите пожалуйста, есть столбец с цифрами и буквами типа “00566СDН” или “LGО” где буквы C, О, H могут быть как Русскими так и английскими, можно желательно формулами или макросами в соседние 2 столбца вывести варианты, первый столбец все похожие буквы заменить на английские, во втором столбце все похожие буквы заменить на русские. Может темы были уже помогите пожалуйста?dfysdbu
Давно уже сделал (и, кажется, здесь это уже выкладывал в "Готовых решениях") пару макросов для борьбы с "трудами плодов" паразитов, которым лень переключать раскладку клавиатуры для ввода одинаковых на взгляд букв латиницы и кириллицы
[vba]
Код
Sub Repair_RUS() ' заменить в не скрытых ячейках выделенного диапазона латинские буквы такими же по начертанию русскими With ActiveSheet.UsedRange If Intersect(ActiveWindow.RangeSelection, .SpecialCells(xlCellTypeVisible), .SpecialCells(xlCellTypeConstants)) Is Nothing Then Exit Sub Application.ScreenUpdating = False: Application.EnableEvents = False Dim LATChr$: LATChr = "CcEeTOopPAaHKkXxBM" Dim RUSChr$: RUSChr = "СсЕеТОорРАаНКкХхВМ" Dim i% For i = 1 To Len(LATChr) Intersect(ActiveWindow.RangeSelection, .SpecialCells(xlCellTypeVisible), .SpecialCells(xlCellTypeConstants)).Replace _ What:=Mid(LATChr, i, 1), Replacement:=Mid(RUSChr, i, 1), LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=True Next i End With Application.ScreenUpdating = True: Application.EnableEvents = True End Sub
[/vba]
И в обратную сторону:
[vba]
Код
Sub Repair_LAT() ' заменить в не скрытых ячейках выделенного диапазона русские буквы такими же по начертанию латинскими With ActiveSheet.UsedRange If Intersect(ActiveWindow.RangeSelection, .SpecialCells(xlCellTypeVisible), .SpecialCells(xlCellTypeConstants)) Is Nothing Then Exit Sub Application.ScreenUpdating = False: Application.EnableEvents = False Dim arrENG: arrENG = Split("C c E e T O o p P A a H K k X x B M") Dim arrRUS: arrRUS = Split("С с Е е Т О о р Р А а Н К к Х х В М") Dim i% For i = 0 To UBound(arrENG) Intersect(ActiveWindow.RangeSelection, .SpecialCells(xlCellTypeVisible), .SpecialCells(xlCellTypeConstants)).Replace _ What:=arrRUS(i), Replacement:=arrENG(i), LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=True Next i End With Application.ScreenUpdating = True: Application.EnableEvents = True End Sub
[/vba]
Давно уже сделал (и, кажется, здесь это уже выкладывал в "Готовых решениях") пару макросов для борьбы с "трудами плодов" паразитов, которым лень переключать раскладку клавиатуры для ввода одинаковых на взгляд букв латиницы и кириллицы
[vba]
Код
Sub Repair_RUS() ' заменить в не скрытых ячейках выделенного диапазона латинские буквы такими же по начертанию русскими With ActiveSheet.UsedRange If Intersect(ActiveWindow.RangeSelection, .SpecialCells(xlCellTypeVisible), .SpecialCells(xlCellTypeConstants)) Is Nothing Then Exit Sub Application.ScreenUpdating = False: Application.EnableEvents = False Dim LATChr$: LATChr = "CcEeTOopPAaHKkXxBM" Dim RUSChr$: RUSChr = "СсЕеТОорРАаНКкХхВМ" Dim i% For i = 1 To Len(LATChr) Intersect(ActiveWindow.RangeSelection, .SpecialCells(xlCellTypeVisible), .SpecialCells(xlCellTypeConstants)).Replace _ What:=Mid(LATChr, i, 1), Replacement:=Mid(RUSChr, i, 1), LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=True Next i End With Application.ScreenUpdating = True: Application.EnableEvents = True End Sub
[/vba]
И в обратную сторону:
[vba]
Код
Sub Repair_LAT() ' заменить в не скрытых ячейках выделенного диапазона русские буквы такими же по начертанию латинскими With ActiveSheet.UsedRange If Intersect(ActiveWindow.RangeSelection, .SpecialCells(xlCellTypeVisible), .SpecialCells(xlCellTypeConstants)) Is Nothing Then Exit Sub Application.ScreenUpdating = False: Application.EnableEvents = False Dim arrENG: arrENG = Split("C c E e T O o p P A a H K k X x B M") Dim arrRUS: arrRUS = Split("С с Е е Т О о р Р А а Н К к Х х В М") Dim i% For i = 0 To UBound(arrENG) Intersect(ActiveWindow.RangeSelection, .SpecialCells(xlCellTypeVisible), .SpecialCells(xlCellTypeConstants)).Replace _ What:=arrRUS(i), Replacement:=arrENG(i), LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=True Next i End With Application.ScreenUpdating = True: Application.EnableEvents = True End Sub