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

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Выделение символов по их коду - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Выделение символов по их коду (Макросы/Sub)
Выделение символов по их коду
Shakal07 Дата: Четверг, 17.06.2021, 14:03 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 48
Репутация: 0 ±
Замечаний: 0% ±

Excel 2k3;2k7;2k10;2k13;2k19
Здравствуйте, уважаемые форумчене.
Есть документ с разными данными (цифры, текст) не суть
Надо с помощью макроса выделить необходимый символ по его коду(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]
Но выделить некоторые символы, такие как "#" или "*" или "?" не удается

С уважением, Shakal

Автор - Shakal07
Дата добавления - 17.06.2021 в 14:03
Pelena Дата: Четверг, 17.06.2021, 19:37 | Сообщение № 2
Группа: Админы
Ранг: Местный житель
Сообщений: 19179
Репутация: 4419 ±
Замечаний: ±

Excel 365 & Mac Excel
Здравствуйте.
Попробуйте так
[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]


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
СообщениеЗдравствуйте.
Попробуйте так
[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]

Автор - Pelena
Дата добавления - 17.06.2021 в 19:37
Shakal07 Дата: Пятница, 18.06.2021, 10:34 | Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 48
Репутация: 0 ±
Замечаний: 0% ±

Excel 2k3;2k7;2k10;2k13;2k19
Спасибо, Все сработало

есть ли возможность сделать так чтобы
при нажатии на кнопку макроса на ленте или панели
можно было ввести код символа
сделать макрос более универсальным
 
Ответить
СообщениеСпасибо, Все сработало

есть ли возможность сделать так чтобы
при нажатии на кнопку макроса на ленте или панели
можно было ввести код символа
сделать макрос более универсальным

Автор - Shakal07
Дата добавления - 18.06.2021 в 10:34
Pelena Дата: Пятница, 18.06.2021, 10:50 | Сообщение № 4
Группа: Админы
Ранг: Местный житель
Сообщений: 19179
Репутация: 4419 ±
Замечаний: ±

Excel 365 & Mac Excel
Для ввода одного кода символа (без проверки правильности) можно так
[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]


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
СообщениеДля ввода одного кода символа (без проверки правильности) можно так
[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]

Автор - Pelena
Дата добавления - 18.06.2021 в 10:50
Shakal07 Дата: Суббота, 11.03.2023, 21:57 | Сообщение № 5
Группа: Пользователи
Ранг: Новичок
Сообщений: 48
Репутация: 0 ±
Замечаний: 0% ±

Excel 2k3;2k7;2k10;2k13;2k19
Pelena, спасибо за макрос

Все работает для печатных символов.
Но иногда надо подсветить непечатные символы (например пробел или его вариации)
И эффект с цветным текстом не срабатывает.
Можно как-нибудь подпилить макрос чтобы символ выделялся и цветом, а также подчеркиванием?

P.S. Как сделать обратный макрос чтобы в поле вводить не код символа, а сам символ

Спасибо
 
Ответить
СообщениеPelena, спасибо за макрос

Все работает для печатных символов.
Но иногда надо подсветить непечатные символы (например пробел или его вариации)
И эффект с цветным текстом не срабатывает.
Можно как-нибудь подпилить макрос чтобы символ выделялся и цветом, а также подчеркиванием?

P.S. Как сделать обратный макрос чтобы в поле вводить не код символа, а сам символ

Спасибо

Автор - Shakal07
Дата добавления - 11.03.2023 в 21:57
mgt Дата: Понедельник, 13.03.2023, 15:07 | Сообщение № 6
Группа: Пользователи
Ранг: Участник
Сообщений: 98
Репутация: 25 ±
Замечаний: 0% ±

Excel 2010
[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
[/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
[/vba]

Автор - mgt
Дата добавления - 13.03.2023 в 15:07
Shakal07 Дата: Понедельник, 06.11.2023, 13:36 | Сообщение № 7
Группа: Пользователи
Ранг: Новичок
Сообщений: 48
Репутация: 0 ±
Замечаний: 0% ±

Excel 2k3;2k7;2k10;2k13;2k19
mgt, Спасибо
А можно ли еще реализировать указание цвета выделения по его индексу и/или по названию
 
Ответить
Сообщениеmgt, Спасибо
А можно ли еще реализировать указание цвета выделения по его индексу и/или по названию

Автор - Shakal07
Дата добавления - 06.11.2023 в 13:36
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Выделение символов по их коду (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

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