Приветствую. Пользуюсь макросом для подсветки Латиницы красным. Часто есть необходимость так же цифры подсвечивать этим же цветом. (макрос скопировал на Планета-эксель) Сам не смогу такую проблему решить.
Sub ShowLatin() For Each c In Selection For i = 1ToLen(c) If (Asc(Mid(c, i, 1)) >= 65AndAsc(Mid(c, i, 1)) <= 90) Or _
(Asc(Mid(c, i, 1)) >= 97AndAsc(Mid(c, i, 1)) <= 122) Then
c.Characters(Start:=i, Length:=1).Font.ColorIndex = 3 EndIf Next i Next c EndSub
И не могу найти аналогичный код для подсветки кирилицы, хотя ранее вроде на этом форуме находил
Приветствую. Пользуюсь макросом для подсветки Латиницы красным. Часто есть необходимость так же цифры подсвечивать этим же цветом. (макрос скопировал на Планета-эксель) Сам не смогу такую проблему решить.
Sub ShowLatin() For Each c In Selection For i = 1ToLen(c) If (Asc(Mid(c, i, 1)) >= 65AndAsc(Mid(c, i, 1)) <= 90) Or _
(Asc(Mid(c, i, 1)) >= 97AndAsc(Mid(c, i, 1)) <= 122) Then
c.Characters(Start:=i, Length:=1).Font.ColorIndex = 3 EndIf Next i Next c EndSub
И не могу найти аналогичный код для подсветки кирилицы, хотя ранее вроде на этом форуме находил ovechkin1973
Плохо когда не знаешь, да еще забудешь. Правильно сформулированный вопрос содержит половину ответа.
Sub ShowLatin() For Each c In Selection For i = 1ToLen(c) If (Asc(Mid(c, i, 1)) >= 48AndAsc(Mid(c, i, 1)) <= 57) Then
c.Characters(Start:=i, Length:=1).Font.ColorIndex = 3 EndIf Next i Next c EndSub
кириллица
Sub ShowLatin() For Each c In Selection For i = 1ToLen(c) If (Asc(Mid(c, i, 1)) >= 192AndAsc(Mid(c, i, 1)) <= 255) Or _ Asc(Mid(c, i, 1)) = 184OrAsc(Mid(c, i, 1)) = 168Then
c.Characters(Start:=i, Length:=1).Font.ColorIndex = 3 EndIf Next i Next c EndSub
Sub ShowLatin() For Each c In Selection For i = 1ToLen(c) If (Asc(Mid(c, i, 1)) >= 48AndAsc(Mid(c, i, 1)) <= 57) Then
c.Characters(Start:=i, Length:=1).Font.ColorIndex = 3 EndIf Next i Next c EndSub
кириллица
Sub ShowLatin() For Each c In Selection For i = 1ToLen(c) If (Asc(Mid(c, i, 1)) >= 192AndAsc(Mid(c, i, 1)) <= 255) Or _ Asc(Mid(c, i, 1)) = 184OrAsc(Mid(c, i, 1)) = 168Then
c.Characters(Start:=i, Length:=1).Font.ColorIndex = 3 EndIf Next i Next c EndSub
Я отфильтровал нужные строки, после выделил ячейки в нужном столбце и макрос выделил красным даже скрытые ячейки. После пробовал выделенные ячейки через Найти и выделить - только видимые ячейки ... Тогда код, как надо отработал
Я отфильтровал нужные строки, после выделил ячейки в нужном столбце и макрос выделил красным даже скрытые ячейки. После пробовал выделенные ячейки через Найти и выделить - только видимые ячейки ... Тогда код, как надо отработалovechkin1973
Плохо когда не знаешь, да еще забудешь. Правильно сформулированный вопрос содержит половину ответа.
Sub ShowLatin() For Each c In Selection For i = 1ToLen(c) If Rows(c).RowHeight > 0And (Asc(Mid(c, i, 1)) >= 48AndAsc(Mid(c, i, 1)) <= 57) Then
c.Characters(Start:=i, Length:=1).Font.ColorIndex = 3 EndIf Next i Next c EndSub
не будет красить скрытые/отфильтрованные
Rows().RowHeight > 0
Sub ShowLatin() For Each c In Selection For i = 1ToLen(c) If Rows(c).RowHeight > 0And (Asc(Mid(c, i, 1)) >= 48AndAsc(Mid(c, i, 1)) <= 57) Then
c.Characters(Start:=i, Length:=1).Font.ColorIndex = 3 EndIf Next i Next c EndSub
Nic70y, Pelena, спасибо за помощь! Работает, как надо.
Sub ВыделитьЛатиницуЦифрыКрасным() For Each c In Selection For i = 1ToLen(c) If c.Rows.RowHeight > 0And (Asc(Mid(c, i, 1)) >= 65AndAsc(Mid(c, i, 1)) <= 90) Or _
(Asc(Mid(c, i, 1)) >= 97AndAsc(Mid(c, i, 1)) <= 122) Then
c.Characters(Start:=i, Length:=1).Font.ColorIndex = 3 EndIf Next i Next c
For Each c In Selection For i = 1ToLen(c) If c.Rows.RowHeight > 0And (Asc(Mid(c, i, 1)) >= 48AndAsc(Mid(c, i, 1)) <= 57) Then
c.Characters(Start:=i, Length:=1).Font.ColorIndex = 3 EndIf Next i Next c
EndSub
Nic70y, Pelena, спасибо за помощь! Работает, как надо.
Sub ВыделитьЛатиницуЦифрыКрасным() For Each c In Selection For i = 1ToLen(c) If c.Rows.RowHeight > 0And (Asc(Mid(c, i, 1)) >= 65AndAsc(Mid(c, i, 1)) <= 90) Or _
(Asc(Mid(c, i, 1)) >= 97AndAsc(Mid(c, i, 1)) <= 122) Then
c.Characters(Start:=i, Length:=1).Font.ColorIndex = 3 EndIf Next i Next c
For Each c In Selection For i = 1ToLen(c) If c.Rows.RowHeight > 0And (Asc(Mid(c, i, 1)) >= 48AndAsc(Mid(c, i, 1)) <= 57) Then
c.Characters(Start:=i, Length:=1).Font.ColorIndex = 3 EndIf Next i Next c