Версия для слабовидящих
Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

 

= Мир MS Excel/подсветка латиницы и цифр (кирилицы и цифр) - Мир MS Excel

  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_, DrMini  
подсветка латиницы и цифр (кирилицы и цифр)
ovechkin1973 Дата: Четверг, 20.02.2020, 10:31 | Сообщение № 1
Группа: Проверенные
Ранг: Обитатель
Сообщений: 429
Репутация: 1 ±
Замечаний: 0% ±

Excel 2010
Приветствую. Пользуюсь макросом для подсветки Латиницы красным. Часто есть необходимость так же цифры подсвечивать этим же цветом. (макрос скопировал на Планета-эксель) Сам не смогу такую проблему решить.

Sub ShowLatin()    
For Each c In Selection        
    For i = 1 To Len(c)            
        If (Asc(Mid(c, i, 1)) >= 65 And Asc(Mid(c, i, 1)) <= 90) Or _
            (Asc(Mid(c, i, 1)) >= 97 And Asc(Mid(c, i, 1)) <= 122) Then
                c.Characters(Start:=i, Length:=1).Font.ColorIndex = 3            
        End If       
    Next i
Next c
End Sub



И не могу найти аналогичный код для подсветки кирилицы, хотя ранее вроде на этом форуме находил :(


Плохо когда не знаешь, да еще забудешь. Правильно сформулированный вопрос содержит половину ответа.
 
Ответить
СообщениеПриветствую. Пользуюсь макросом для подсветки Латиницы красным. Часто есть необходимость так же цифры подсвечивать этим же цветом. (макрос скопировал на Планета-эксель) Сам не смогу такую проблему решить.
[vba]
Sub ShowLatin()    For Each c In Selection            For i = 1 To Len(c)                    If (Asc(Mid(c, i, 1)) >= 65 And Asc(Mid(c, i, 1)) <= 90) Or _               (Asc(Mid(c, i, 1)) >= 97 And Asc(Mid(c, i, 1)) <= 122) Then                c.Characters(Start:=i, Length:=1).Font.ColorIndex = 3                    End If           Next iNext cEnd Sub
[/vba]

И не могу найти аналогичный код для подсветки кирилицы, хотя ранее вроде на этом форуме находил :(

Автор - ovechkin1973
Дата добавления - 20.02.2020 в 10:31
Nic70y Дата: Четверг, 20.02.2020, 10:42 | Сообщение № 2
Группа: Друзья
Ранг: Экселист
Сообщений: 9133
Репутация: 2416 ±
Замечаний: 0% ±

Excel 2010
цифры

Sub ShowLatin()
For Each c In Selection
    For i = 1 To Len(c)
        If (Asc(Mid(c, i, 1)) >= 48 And Asc(Mid(c, i, 1)) <= 57) Then
            c.Characters(Start:=i, Length:=1).Font.ColorIndex = 3
        End If
    Next i
Next c
End Sub


кириллица

Sub ShowLatin()
For Each c In Selection
    For i = 1 To Len(c)
        If (Asc(Mid(c, i, 1)) >= 192 And Asc(Mid(c, i, 1)) <= 255) Or _
            Asc(Mid(c, i, 1)) = 184 Or Asc(Mid(c, i, 1)) = 168 Then
                c.Characters(Start:=i, Length:=1).Font.ColorIndex = 3
        End If
    Next i
Next c
End Sub



апдэйт
Цитата
хотя ранее вроде на этом форуме находил

тут видать


ЮMoney 41001841029809

Сообщение отредактировал Nic70y - Четверг, 20.02.2020, 10:56
 
Ответить
Сообщениецифры
[vba]
Sub ShowLatin()For Each c In Selection    For i = 1 To Len(c)        If (Asc(Mid(c, i, 1)) >= 48 And Asc(Mid(c, i, 1)) <= 57) Then            c.Characters(Start:=i, Length:=1).Font.ColorIndex = 3        End If    Next iNext cEnd Sub
[/vba]
кириллица
[vba]
Sub ShowLatin()For Each c In Selection    For i = 1 To Len(c)        If (Asc(Mid(c, i, 1)) >= 192 And Asc(Mid(c, i, 1)) <= 255) Or _            Asc(Mid(c, i, 1)) = 184 Or Asc(Mid(c, i, 1)) = 168 Then                c.Characters(Start:=i, Length:=1).Font.ColorIndex = 3        End If    Next iNext cEnd Sub
[/vba]

апдэйт
Цитата
хотя ранее вроде на этом форуме находил

тут видать

Автор - Nic70y
Дата добавления - 20.02.2020 в 10:42
ovechkin1973 Дата: Четверг, 20.02.2020, 12:10 | Сообщение № 3
Группа: Проверенные
Ранг: Обитатель
Сообщений: 429
Репутация: 1 ±
Замечаний: 0% ±

Excel 2010
Цитата Nic70y, 20.02.2020 в 10:42, в сообщении № 2 ( писал(а)):
цифры

Спасибо! Вопрос немного не по теме.. а если нужно только выделенные ячейки макросом обработать?


Плохо когда не знаешь, да еще забудешь. Правильно сформулированный вопрос содержит половину ответа.
 
Ответить
Сообщение
Цитата Nic70y, 20.02.2020 в 10:42, в сообщении № 2 ( писал(а)):
цифры

Спасибо! Вопрос немного не по теме.. а если нужно только выделенные ячейки макросом обработать?

Автор - ovechkin1973
Дата добавления - 20.02.2020 в 12:10
Nic70y Дата: Четверг, 20.02.2020, 12:13 | Сообщение № 4
Группа: Друзья
Ранг: Экселист
Сообщений: 9133
Репутация: 2416 ±
Замечаний: 0% ±

Excel 2010
Цитата ovechkin1973, 20.02.2020 в 12:10, в сообщении № 3 ( писал(а)):
только выделенные ячейки
ну как бы он так и делает
Цитата ovechkin1973, 20.02.2020 в 10:31, в сообщении № 1 ( писал(а)):
For Each c In Selection


ЮMoney 41001841029809
 
Ответить
Сообщение
Цитата ovechkin1973, 20.02.2020 в 12:10, в сообщении № 3 ( писал(а)):
только выделенные ячейки
ну как бы он так и делает
Цитата ovechkin1973, 20.02.2020 в 10:31, в сообщении № 1 ( писал(а)):
For Each c In Selection

Автор - Nic70y
Дата добавления - 20.02.2020 в 12:13
ovechkin1973 Дата: Четверг, 20.02.2020, 12:44 | Сообщение № 5
Группа: Проверенные
Ранг: Обитатель
Сообщений: 429
Репутация: 1 ±
Замечаний: 0% ±

Excel 2010
Цитата Nic70y, 20.02.2020 в 12:13, в сообщении № 4 ( писал(а)):
ну как бы он так и делает

Я отфильтровал нужные строки, после выделил ячейки в нужном столбце и макрос выделил красным даже скрытые ячейки. После пробовал выделенные ячейки через Найти и выделить - только видимые ячейки ... Тогда код, как надо отработал


Плохо когда не знаешь, да еще забудешь. Правильно сформулированный вопрос содержит половину ответа.
 
Ответить
Сообщение
Цитата Nic70y, 20.02.2020 в 12:13, в сообщении № 4 ( писал(а)):
ну как бы он так и делает

Я отфильтровал нужные строки, после выделил ячейки в нужном столбце и макрос выделил красным даже скрытые ячейки. После пробовал выделенные ячейки через Найти и выделить - только видимые ячейки ... Тогда код, как надо отработал

Автор - ovechkin1973
Дата добавления - 20.02.2020 в 12:44
Nic70y Дата: Четверг, 20.02.2020, 14:10 | Сообщение № 6
Группа: Друзья
Ранг: Экселист
Сообщений: 9133
Репутация: 2416 ±
Замечаний: 0% ±

Excel 2010
Rows().RowHeight > 0

Sub ShowLatin()
For Each c In Selection
    For i = 1 To Len(c)
        If Rows(c).RowHeight > 0 And (Asc(Mid(c, i, 1)) >= 48 And Asc(Mid(c, i, 1)) <= 57) Then
            c.Characters(Start:=i, Length:=1).Font.ColorIndex = 3
        End If
    Next i
Next c
End Sub

не будет красить скрытые/отфильтрованные


ЮMoney 41001841029809

Сообщение отредактировал Nic70y - Четверг, 20.02.2020, 14:11
 
Ответить
СообщениеRows().RowHeight > 0
[vba]
Sub ShowLatin()For Each c In Selection    For i = 1 To Len(c)        If Rows(c).RowHeight > 0 And (Asc(Mid(c, i, 1)) >= 48 And Asc(Mid(c, i, 1)) <= 57) Then            c.Characters(Start:=i, Length:=1).Font.ColorIndex = 3        End If    Next iNext cEnd Sub
[/vba]не будет красить скрытые/отфильтрованные

Автор - Nic70y
Дата добавления - 20.02.2020 в 14:10
ovechkin1973 Дата: Четверг, 20.02.2020, 21:34 | Сообщение № 7
Группа: Проверенные
Ранг: Обитатель
Сообщений: 429
Репутация: 1 ±
Замечаний: 0% ±

Excel 2010
Цитата Nic70y, 20.02.2020 в 14:10, в сообщении № 6 ( писал(а)):
Rows().RowHeight > 0

у меня ошибку выдает этот код. Run-time error 13
Type mismatch


Плохо когда не знаешь, да еще забудешь. Правильно сформулированный вопрос содержит половину ответа.
 
Ответить
Сообщение
Цитата Nic70y, 20.02.2020 в 14:10, в сообщении № 6 ( писал(а)):
Rows().RowHeight > 0

у меня ошибку выдает этот код. Run-time error 13
Type mismatch

Автор - ovechkin1973
Дата добавления - 20.02.2020 в 21:34
Pelena Дата: Четверг, 20.02.2020, 22:13 | Сообщение № 8
Группа: Админы
Ранг: Местный житель
Сообщений: 19517
Репутация: 4632 ±
Замечаний: ±

Excel 365 & Mac Excel

c.Rows.RowHeight>0



"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
Сообщение[vba]
c.Rows.RowHeight>0
[/vba]

Автор - Pelena
Дата добавления - 20.02.2020 в 22:13
ovechkin1973 Дата: Воскресенье, 23.02.2020, 09:24 | Сообщение № 9
Группа: Проверенные
Ранг: Обитатель
Сообщений: 429
Репутация: 1 ±
Замечаний: 0% ±

Excel 2010
Nic70y, Pelena, спасибо за помощь! Работает, как надо.

Sub ВыделитьЛатиницуЦифрыКрасным()
For Each c In Selection
    For i = 1 To Len(c)
        If c.Rows.RowHeight > 0 And (Asc(Mid(c, i, 1)) >= 65 And Asc(Mid(c, i, 1)) <= 90) Or _
            (Asc(Mid(c, i, 1)) >= 97 And Asc(Mid(c, i, 1)) <= 122) Then
                c.Characters(Start:=i, Length:=1).Font.ColorIndex = 3
        End If
    Next i
Next c

For Each c In Selection
    For i = 1 To Len(c)
        If c.Rows.RowHeight > 0 And (Asc(Mid(c, i, 1)) >= 48 And Asc(Mid(c, i, 1)) <= 57) Then
            c.Characters(Start:=i, Length:=1).Font.ColorIndex = 3
        End If
    Next i
Next c

End Sub



Плохо когда не знаешь, да еще забудешь. Правильно сформулированный вопрос содержит половину ответа.
 
Ответить
СообщениеNic70y, Pelena, спасибо за помощь! Работает, как надо.
[vba]
Sub ВыделитьЛатиницуЦифрыКрасным()For Each c In Selection    For i = 1 To Len(c)        If c.Rows.RowHeight > 0 And (Asc(Mid(c, i, 1)) >= 65 And Asc(Mid(c, i, 1)) <= 90) Or _               (Asc(Mid(c, i, 1)) >= 97 And Asc(Mid(c, i, 1)) <= 122) Then                c.Characters(Start:=i, Length:=1).Font.ColorIndex = 3        End If    Next iNext cFor Each c In Selection    For i = 1 To Len(c)        If c.Rows.RowHeight > 0 And (Asc(Mid(c, i, 1)) >= 48 And Asc(Mid(c, i, 1)) <= 57) Then            c.Characters(Start:=i, Length:=1).Font.ColorIndex = 3        End If    Next iNext cEnd Sub
[/vba]

Автор - ovechkin1973
Дата добавления - 23.02.2020 в 09:24
  • Страница 1 из 1
  • 1
Поиск:

Рейтинг@Mail.ru Яндекс.Метрика Яндекс цитирования
© 2010-2025 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!