Здравствуйте, уважаемые форумчене. Есть документ с разными данными (цифры, текст) не суть Надо с помощью макроса выделить необходимый символ по его коду(UNICODE) Есть такой макрос, вроде как рабочий, но не все гладко [vba]
Код
Sub ShowChar() ' Выделить символ Dim c As Range, i As Long For Each c In Selection For i = 1 To Len(c) If Mid$(c, i, 1) Like ChrW(35) Then c.Characters(Start:=i, Length:=1).Font.ColorIndex = 5 Next i, c End Sub
[/vba] Но выделить некоторые символы, такие как "#" или "*" или "?" не удается
С уважением, Shakal
Здравствуйте, уважаемые форумчене. Есть документ с разными данными (цифры, текст) не суть Надо с помощью макроса выделить необходимый символ по его коду(UNICODE) Есть такой макрос, вроде как рабочий, но не все гладко [vba]
Код
Sub ShowChar() ' Выделить символ Dim c As Range, i As Long For Each c In Selection For i = 1 To Len(c) If Mid$(c, i, 1) Like ChrW(35) Then c.Characters(Start:=i, Length:=1).Font.ColorIndex = 5 Next i, c End Sub
[/vba] Но выделить некоторые символы, такие как "#" или "*" или "?" не удается
Sub ShowChar() ' Выделить символ Dim c As Range, i As Long For Each c In Selection For i = 1 To Len(c) If Mid$(c, i, 1) = ChrW(35) Then c.Characters(Start:=i, Length:=1).Font.ColorIndex = 5 Next i, c End Sub
[/vba]
Здравствуйте. Попробуйте так [vba]
Код
Sub ShowChar() ' Выделить символ Dim c As Range, i As Long For Each c In Selection For i = 1 To Len(c) If Mid$(c, i, 1) = ChrW(35) Then c.Characters(Start:=i, Length:=1).Font.ColorIndex = 5 Next i, c End Sub
есть ли возможность сделать так чтобы при нажатии на кнопку макроса на ленте или панели можно было ввести код символа сделать макрос более универсальным
Спасибо, Все сработало
есть ли возможность сделать так чтобы при нажатии на кнопку макроса на ленте или панели можно было ввести код символа сделать макрос более универсальнымShakal07
Для ввода одного кода символа (без проверки правильности) можно так [vba]
Код
Sub ShowChar() ' Выделить символ Dim c As Range, i As Long, ch As Long ch = InputBox("введите код символа") For Each c In Selection For i = 1 To Len(c) If Mid$(c, i, 1) = ChrW(ch) Then c.Characters(Start:=i, Length:=1).Font.ColorIndex = 5 Next i, c End Sub
[/vba]
Для ввода одного кода символа (без проверки правильности) можно так [vba]
Код
Sub ShowChar() ' Выделить символ Dim c As Range, i As Long, ch As Long ch = InputBox("введите код символа") For Each c In Selection For i = 1 To Len(c) If Mid$(c, i, 1) = ChrW(ch) Then c.Characters(Start:=i, Length:=1).Font.ColorIndex = 5 Next i, c End Sub
Все работает для печатных символов. Но иногда надо подсветить непечатные символы (например пробел или его вариации) И эффект с цветным текстом не срабатывает. Можно как-нибудь подпилить макрос чтобы символ выделялся и цветом, а также подчеркиванием?
P.S. Как сделать обратный макрос чтобы в поле вводить не код символа, а сам символ
Спасибо
Pelena, спасибо за макрос
Все работает для печатных символов. Но иногда надо подсветить непечатные символы (например пробел или его вариации) И эффект с цветным текстом не срабатывает. Можно как-нибудь подпилить макрос чтобы символ выделялся и цветом, а также подчеркиванием?
P.S. Как сделать обратный макрос чтобы в поле вводить не код символа, а сам символ
Sub ShowChar() Dim c As Range, i As Long, ch As Long ch = Val(InputBox("введите код символа")) If ch = 0 Then Exit Sub For Each c In Selection For i = 1 To Len(c) If Mid$(c, i, 1) = ChrW(ch) Then c.Characters(Start:=i, Length:=1).Font.ColorIndex = 5 c.Characters(Start:=i, Length:=1).Font.Underline = xlUnderlineStyleSingle End If Next i, c End Sub
[/vba]
[vba]
Код
Sub ShowChar() Dim c As Range, i As Long, ch As String ch = InputBox("введите символ") If ch = "" Then Exit Sub For Each c In Selection For i = 1 To Len(c) If Mid$(c, i, 1) = ch Then c.Characters(Start:=i, Length:=1).Font.ColorIndex = 5 c.Characters(Start:=i, Length:=1).Font.Underline = xlUnderlineStyleSingle End If Next i, c End sub
[/vba]
[vba]
Код
Sub ShowChar() Dim c As Range, i As Long, ch As Long ch = Val(InputBox("введите код символа")) If ch = 0 Then Exit Sub For Each c In Selection For i = 1 To Len(c) If Mid$(c, i, 1) = ChrW(ch) Then c.Characters(Start:=i, Length:=1).Font.ColorIndex = 5 c.Characters(Start:=i, Length:=1).Font.Underline = xlUnderlineStyleSingle End If Next i, c End Sub
[/vba]
[vba]
Код
Sub ShowChar() Dim c As Range, i As Long, ch As String ch = InputBox("введите символ") If ch = "" Then Exit Sub For Each c In Selection For i = 1 To Len(c) If Mid$(c, i, 1) = ch Then c.Characters(Start:=i, Length:=1).Font.ColorIndex = 5 c.Characters(Start:=i, Length:=1).Font.Underline = xlUnderlineStyleSingle End If Next i, c End sub