Приветствую. Пользуюсь макросом для подсветки Латиницы красным. Часто есть необходимость так же цифры подсвечивать этим же цветом. (макрос скопировал на Планета-эксель) Сам не смогу такую проблему решить. [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 i Next c End Sub
[/vba]
И не могу найти аналогичный код для подсветки кирилицы, хотя ранее вроде на этом форуме находил
Приветствую. Пользуюсь макросом для подсветки Латиницы красным. Часто есть необходимость так же цифры подсвечивать этим же цветом. (макрос скопировал на Планета-эксель) Сам не смогу такую проблему решить. [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 i Next c End Sub
[/vba]
И не могу найти аналогичный код для подсветки кирилицы, хотя ранее вроде на этом форуме находил ovechkin1973
Плохо когда не знаешь, да еще забудешь. Правильно сформулированный вопрос содержит половину ответа.
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
[/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 i Next c End Sub
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
[/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 i Next c End Sub
Я отфильтровал нужные строки, после выделил ячейки в нужном столбце и макрос выделил красным даже скрытые ячейки. После пробовал выделенные ячейки через Найти и выделить - только видимые ячейки ... Тогда код, как надо отработал
Я отфильтровал нужные строки, после выделил ячейки в нужном столбце и макрос выделил красным даже скрытые ячейки. После пробовал выделенные ячейки через Найти и выделить - только видимые ячейки ... Тогда код, как надо отработалovechkin1973
Плохо когда не знаешь, да еще забудешь. Правильно сформулированный вопрос содержит половину ответа.
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
[/vba]не будет красить скрытые/отфильтрованные
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 i Next c End Sub
[/vba]не будет красить скрытые/отфильтрованныеNic70y
ЮMoney 41001841029809
Сообщение отредактировал Nic70y - Четверг, 20.02.2020, 14:11
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 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
[/vba]
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 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