Function КИР_ЛАТ(СЛОВО$) As String Dim i As Long, strTmp$, FirstS, NextS$ strTmp = Left(СЛОВО, 1) On Error Resume Next For i = 1 To Len(СЛОВО) FirstS = Mid(СЛОВО, i, 1) NextS = Mid(СЛОВО, i + 1, 1) Select Case Asc(FirstS) Case 65 To 90, 97 To 122 Select Case Asc(NextS) Case 65 To 90, 97 To 122 strTmp = strTmp & NextS Case Else strTmp = strTmp & " " & NextS End Select Case 192 To 255, 168, 184 Select Case Asc(NextS) Case 192 To 255, 168, 184 strTmp = strTmp & NextS Case 65 To 90, 97 To 122 strTmp = strTmp & " " & NextS Case Else strTmp = strTmp & " " & NextS End Select Case Else strTmp = strTmp & " " & NextS End Select Next i КИР_ЛАТ = strTmp End Function
[/vba]
ЮДФ [vba]
Код
Function КИР_ЛАТ(СЛОВО$) As String Dim i As Long, strTmp$, FirstS, NextS$ strTmp = Left(СЛОВО, 1) On Error Resume Next For i = 1 To Len(СЛОВО) FirstS = Mid(СЛОВО, i, 1) NextS = Mid(СЛОВО, i + 1, 1) Select Case Asc(FirstS) Case 65 To 90, 97 To 122 Select Case Asc(NextS) Case 65 To 90, 97 To 122 strTmp = strTmp & NextS Case Else strTmp = strTmp & " " & NextS End Select Case 192 To 255, 168, 184 Select Case Asc(NextS) Case 192 To 255, 168, 184 strTmp = strTmp & NextS Case 65 To 90, 97 To 122 strTmp = strTmp & " " & NextS Case Else strTmp = strTmp & " " & NextS End Select Case Else strTmp = strTmp & " " & NextS End Select Next i КИР_ЛАТ = strTmp End Function
Я для выделения плодов трудов "умельцев", которые мешают в тексте латиницу и кириллицу, написал макрос, выделяющий такие буквы разным цветом:Sub [vba]
Код
Color_RUS_LAT() ' Выделяет русские символы в Selection ЗЕЛЁНЫМ, латинские - КРАСНЫМ If TypeName(Selection) <> "Range" Then Exit Sub Dim iCell As Range, rRange As Range, i%, ASCII%, iColor% On Error GoTo eXXit Set rRange = Intersect(Selection, ActiveSheet.UsedRange) If rRange Is Nothing Then Exit Sub Application.ScreenUpdating = False For Each iCell In rRange For i = 1 To Len(iCell) ASCII = Asc(Mid(iCell, i, 1)) If (ASCII >= 192 And ASCII <= 255) Then iColor = 10 'цвет символов РУС If (ASCII >= 65 And ASCII <= 90) Or (ASCII >= 97 And ASCII <= 122) Then iColor = 3 'цвет символов LAT iCell.Characters(Start:=i, Length:=1).Font.ColorIndex = iColor Next i Next iCell rRange.Select Application.ScreenUpdating = True eXXit: End Sub
[/vba]При желании из него легко можно и ЮДФ-ку сделать. Хотя ЗАЧЕМ? Я этот макрос у себя в Персонал положил, а пункт-кнопочку для его вызова в меню "Сервис" засунул с капчей "Выделить цветом РУС-LAT" и регулярно пользуюсь. Очень помогает обрабатывать-объединять чужие таблицы, полученные из разных источников.
Я для выделения плодов трудов "умельцев", которые мешают в тексте латиницу и кириллицу, написал макрос, выделяющий такие буквы разным цветом:Sub [vba]
Код
Color_RUS_LAT() ' Выделяет русские символы в Selection ЗЕЛЁНЫМ, латинские - КРАСНЫМ If TypeName(Selection) <> "Range" Then Exit Sub Dim iCell As Range, rRange As Range, i%, ASCII%, iColor% On Error GoTo eXXit Set rRange = Intersect(Selection, ActiveSheet.UsedRange) If rRange Is Nothing Then Exit Sub Application.ScreenUpdating = False For Each iCell In rRange For i = 1 To Len(iCell) ASCII = Asc(Mid(iCell, i, 1)) If (ASCII >= 192 And ASCII <= 255) Then iColor = 10 'цвет символов РУС If (ASCII >= 65 And ASCII <= 90) Or (ASCII >= 97 And ASCII <= 122) Then iColor = 3 'цвет символов LAT iCell.Characters(Start:=i, Length:=1).Font.ColorIndex = iColor Next i Next iCell rRange.Select Application.ScreenUpdating = True eXXit: End Sub
[/vba]При желании из него легко можно и ЮДФ-ку сделать. Хотя ЗАЧЕМ? Я этот макрос у себя в Персонал положил, а пункт-кнопочку для его вызова в меню "Сервис" засунул с капчей "Выделить цветом РУС-LAT" и регулярно пользуюсь. Очень помогает обрабатывать-объединять чужие таблицы, полученные из разных источников.Alex_ST
А её никто не любит. Это искусственная буква, придуманная конкретным человеком (Гоголем, по-моему). Эта буква - изгой русского языка, единственная буква, которая не используется в официальных документах (например в думе или правительстве). А ещё её не используют в официальных названиях например станций метро. поэтому в Москве есть пошло-порнографическая станция "Щелковская", а не прилично-понятная "Щёлковская".
Quote (RAN)
то же вы букву "ё" так не любите?
А её никто не любит. Это искусственная буква, придуманная конкретным человеком (Гоголем, по-моему). Эта буква - изгой русского языка, единственная буква, которая не используется в официальных документах (например в думе или правительстве). А ещё её не используют в официальных названиях например станций метро. поэтому в Москве есть пошло-порнографическая станция "Щелковская", а не прилично-понятная "Щёлковская". Serge_007
Если всегда сначала идут английские буквы, а потом русские (не вперемежку!), то подойдёт такой вариант (см. вложение).
Сергей, спасибо Именно так я и хотел . Для полного счастья мне надо изменить формулу так , чтобы... =ЛЕВСИМВ(D4;МИН(ЕСЛИ(ЕСЛИ(ЕОШ(КОДСИМВ(ПСТР(D4;СТРОКА(1:99);1)));100;КОДСИМВ(ПСТР(D4;СТРОКА(1:99);1)))>191;СТРОКА(1:99)))-1) значение >191 заменить на <123
ЗЫ у меня компьютер старенький , он до стольки считать не умеет
Quote (Serge_007)
Если всегда сначала идут английские буквы, а потом русские (не вперемежку!), то подойдёт такой вариант (см. вложение).
Сергей, спасибо Именно так я и хотел . Для полного счастья мне надо изменить формулу так , чтобы... =ЛЕВСИМВ(D4;МИН(ЕСЛИ(ЕСЛИ(ЕОШ(КОДСИМВ(ПСТР(D4;СТРОКА(1:99);1)));100;КОДСИМВ(ПСТР(D4;СТРОКА(1:99);1)))>191;СТРОКА(1:99)))-1) значение >191 заменить на <123
ЗЫ у меня компьютер старенький , он до стольки считать не умеет
Наоборот... Из-за уважения к форумчанам и форуму не хочу сюда грузить никому не нужный мусор. Ваша формула будет прекрасно работать у любого юзера этого форума . А то, что моя машина умеет считать только до 123 - так это только моя головная боль и никому это не интересно
Quote (Serge_007)
подробное описание с картинками на почте
0mega, так не делается.
только одна картинка В ZIP-e весит 750 (!)
Quote (Serge_007)
Что за неуважение к остальным?
Наоборот... Из-за уважения к форумчанам и форуму не хочу сюда грузить никому не нужный мусор. Ваша формула будет прекрасно работать у любого юзера этого форума . А то, что моя машина умеет считать только до 123 - так это только моя головная боль и никому это не интересно0mega
А то что я всё-равно не могу посмотреть вложение такого размера с работы (ограничение как и на этом формуме и на планете в 100 Кб)? И есть формат gif. Да и вообще зачем столько картинок?
Quote (0mega)
не хочу сюда грузить никому не нужный мусор
Т.е. мне его грузить можно?
Quote (0mega)
о, что моя машина умеет считать только до 123
Как раз вот это, я думаю, интересно многим.
Quote (0mega)
олько одна картинка В ZIP-e весит 750
А то что я всё-равно не могу посмотреть вложение такого размера с работы (ограничение как и на этом формуме и на планете в 100 Кб)? И есть формат gif. Да и вообще зачем столько картинок?
Quote (0mega)
не хочу сюда грузить никому не нужный мусор
Т.е. мне его грузить можно?
Quote (0mega)
о, что моя машина умеет считать только до 123
Как раз вот это, я думаю, интересно многим.Serge_007