Note: The other languages of the website are Google-translated. Back to English

Как раскрасить или выделить определенное слово в ячейках в Excel?

Если ячейка содержит несколько слов, как можно выделить определенное слово только в этой ячейке? А как насчет выделения этого слова в нескольких ячейках? Эта статья предоставит способ ее достижения.

Раскрасьте определенное слово в одной или нескольких ячейках с кодом VBA


Раскрасьте определенное слово в одной или нескольких ячейках с кодом VBA

Следующий код VBA может помочь вам выделить определенное слово в выделенном фрагменте. Пожалуйста, сделайте следующее.

1. Выберите диапазон, содержащий ячейки, внутри которых вы хотите выделить определенное слово. Затем нажмите кнопку другой + F11 клавиши одновременно, чтобы открыть Microsoft Visual Basic для приложений окно.

2. В дебюте Microsoft Visual Basic для приложений окна, нажмите Вставить > Модули. Затем скопируйте и вставьте код VBA в окно кода.

Код VBA: раскрасьте определенное слово в ячейках в Excel

Sub HighlightStrings()
    Dim xHStr As String, xStrTmp As String
    Dim xHStrLen As Long, xCount As Long, I As Long
    Dim xCell As Range
    Dim xArr
    On Error Resume Next
    xHStr = Application.InputBox("What is the string to highlight:", "KuTools For Excel", , , , , , 2)
    If TypeName(xHStr) <> "String" Then Exit Sub
    Application.ScreenUpdating = False
        xHStrLen = Len(xHStr)
        For Each xCell In Selection
            xArr = Split(xCell.Value, xHStr)
            xCount = UBound(xArr)
            If xCount > 0 Then
                xStrTmp = ""
                For I = 0 To xCount - 1
                    xStrTmp = xStrTmp & xArr(I)
                    xCell.Characters(Len(xStrTmp) + 1, xHStrLen).Font.ColorIndex = 3
                    xStrTmp = xStrTmp & xHStr
                Next
            End If
        Next
    Application.ScreenUpdating = True
End Sub

3. нажмите F5 ключ для запуска кода. И в Kutools for Excel диалоговом окне введите определенное слово, которое вы выделите в ячейках, а затем нажмите OK кнопка. Смотрите скриншот:

Затем вы можете увидеть, что все указанные вами слова окрашены в красный цвет в выбранных ячейках сразу, как показано ниже.


Статьи по теме:


Лучшие инструменты для работы в офисе

Kutools for Excel решает большинство ваших проблем и увеличивает вашу производительность на 80%

  • Снова использовать: Быстро вставить сложные формулы, диаграммы и все, что вы использовали раньше; Зашифровать ячейки с паролем; Создать список рассылки и отправлять электронные письма ...
  • Бар Супер Формулы (легко редактировать несколько строк текста и формул); Макет для чтения (легко читать и редактировать большое количество ячеек); Вставить в отфильтрованный диапазон...
  • Объединить ячейки / строки / столбцы без потери данных; Разделить содержимое ячеек; Объединить повторяющиеся строки / столбцы... Предотвращение дублирования ячеек; Сравнить диапазоны...
  • Выберите Дубликат или Уникальный Ряды; Выбрать пустые строки (все ячейки пустые); Супер находка и нечеткая находка во многих рабочих тетрадях; Случайный выбор ...
  • Точная копия Несколько ячеек без изменения ссылки на формулу; Автоматическое создание ссылок на несколько листов; Вставить пули, Флажки и многое другое ...
  • Извлечь текст, Добавить текст, Удалить по позиции, Удалить пробел; Создание и печать промежуточных итогов по страницам; Преобразование содержимого ячеек в комментарии...
  • Суперфильтр (сохранять и применять схемы фильтров к другим листам); Расширенная сортировка по месяцам / неделям / дням, периодичности и др .; Специальный фильтр жирным, курсивом ...
  • Комбинируйте книги и рабочие листы; Объединить таблицы на основе ключевых столбцов; Разделить данные на несколько листов; Пакетное преобразование xls, xlsx и PDF...
  • Более 300 мощных функций. Поддерживает Office/Excel 2007-2021 и 365. Поддерживает все языки. Простое развертывание на вашем предприятии или в организации. Полнофункциональная 30-дневная бесплатная пробная версия. 60-дневная гарантия возврата денег.
вкладка kte 201905

Вкладка Office: интерфейс с вкладками в Office и упрощение работы

  • Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
  • Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
  • Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!
офисный дно
Сортировать комментарии по
Комментарии (23)
Номинальный 5 из 5 · рейтинги 1
Этот комментарий был сведен к минимуму модератором на сайте
Вы не объясняете, как открыть «диалоговое окно Kutools for Excel», упомянутое на последнем шаге.
Этот комментарий был сведен к минимуму модератором на сайте
Дорогой Джастин,
Извини за это. После вставки кода VBA в окно кода нажмите клавишу F5, чтобы запустить код, после чего откроется диалоговое окно «Kutools for Excel». Спасибо.
Этот комментарий был сведен к минимуму модератором на сайте
Есть ли способ заставить код автоматически выделять слова при редактировании вкладок?
Этот комментарий был сведен к минимуму модератором на сайте
Здравствуйте,
Извините, не могу помочь с этим. Спасибо за ваш комментарий.
Этот комментарий был сведен к минимуму модератором на сайте
СПАСИБО, СПАСИБО, СПАСИБО
Этот комментарий был сведен к минимуму модератором на сайте
Quisisera resaltar varias palabras al tiempo, como lo puedo hacer?
Этот комментарий был сведен к минимуму модератором на сайте
Eso es lo que estoy tratando de hacer tamiben (Это то, что я тоже пытаюсь сделать)
Этот комментарий был сведен к минимуму модератором на сайте
Если вы предпочитаете, чтобы поиск/выделение не учитывало регистр, измените строку «xArr = Split(xCell.Value, xHStr)» на «xArr = Split(LCase(xCell.Value), LCase(xHStr))». Кроме того, я заметил, что нажатие F5 не запускает скрипт (а вместо этого открывает другое модальное окно). Я получил к нему доступ, включив вкладку «Разработчик» с помощью параметров Excel («Настроить ленту») и затем щелкнув «Макросы».
Этот комментарий был сведен к минимуму модератором на сайте
Спасибо... это было очень полезно! Есть ли способ настроить макрос так, чтобы он выделял только целые слова, а не части. Например, я пытаюсь выделить слово «дизайн», но он выделяет «дизайн» в слове «назначить». Я хочу, чтобы он пропустил это слово, если это не все слово. Спасибо!
Этот комментарий был сведен к минимуму модератором на сайте
Привет,
Возможен ли суппример ла boite de dialog et de mettre par défaut "apple" comme mot recherché?
спасибо
Этот комментарий был сведен к минимуму модератором на сайте
Здравствуйте, PAUC.
Следующий код может оказать вам услугу. Пожалуйста, попробуйте.
Sub HighlightStrings()
'Updated by Extendoffice 20220721
    Dim xHStr As String, xStrTmp As String
    Dim xHStrLen As Long, xCount As Long, I As Long
    Dim xCell As Range
    Dim xArr
    On Error Resume Next
    xHStr = "apple"
    If TypeName(xHStr) <> "String" Then Exit Sub
    Application.ScreenUpdating = False
        xHStrLen = Len(xHStr)
        For Each xCell In Selection
            xArr = Split(xCell.Value, xHStr)
            xCount = UBound(xArr)
            If xCount > 0 Then
                xStrTmp = ""
                For I = 0 To xCount - 1
                    xStrTmp = xStrTmp & xArr(I)
                    xCell.Characters(Len(xStrTmp) + 1, xHStrLen).Font.ColorIndex = 3
                    xStrTmp = xStrTmp & xHStr
                Next
            End If
        Next
    Application.ScreenUpdating = True
End Sub
Этот комментарий был сведен к минимуму модератором на сайте
хорошо

Coloreaza cuvantul doar daca e la inceput. Daca е-ла mijloc в aceeasi casuta де excel сау ла sfarsit ну-л coloreaza.
Ce anume as putea schimba in cod pentru al colora indiferent unde se afla in casuta excel?

Спасибо!
Этот комментарий был сведен к минимуму модератором на сайте
Привет Андреа,
Если вы хотите выделить слово только в том случае, если оно находится в начале выбранных ячеек. Следующий код VBA может оказать вам услугу. Пожалуйста, попробуйте.
Sub HighlightStrings()
'Updated by Extendoffice 20220805
    Dim xHStr As String, xStrTmp As String
    Dim xHStrLen As Long, xCount As Long, I As Long
    Dim xCell As Range
    Dim xArr
    On Error Resume Next
    xHStr = Application.InputBox("What is the string to highlight:", "KuTools For Excel", , , , , , 2)
    If TypeName(xHStr) <> "String" Then Exit Sub
    Application.ScreenUpdating = False
        xHStrLen = Len(xHStr)
        For Each xCell In Selection
            If xHStrLen <= Len(xCell.Value) Then
                If xHStr = Left(xCell.Value, xHStrLen) Then
                    xCell.Characters(1, xHStrLen).Font.ColorIndex = 3
                End If
            End If
        Next
    Application.ScreenUpdating = True
End Sub
Этот комментарий был сведен к минимуму модератором на сайте
Здравствуй,
a me servirebbe evidenziare tutti i numeri (comprensivi di due decimali) da -10,00 a 0 in rosso e da 0 a +10,00 in verde. Можно ли оплачивать проезд за однократное добавление всех данных, не влияющих на все вручную?

Большое спасибо
Этот комментарий был сведен к минимуму модератором на сайте
Привет Чао,
Ваши числа расположены в разных ячейках диапазона? Если это так, вы можете создать два правила условного форматирования (от -10 до 0, от 0 до 10), чтобы выделить эти числа. Если нет, можете ли вы загрузить скриншот ваших данных?
Этот комментарий был сведен к минимуму модератором на сайте
Это очень приятно, спасибо! Мне интересно, знает ли кто-нибудь, как заставить его работать на Mac? Большое спасибо
Номинальный 5 из 5
Этот комментарий был сведен к минимуму модератором на сайте
как можно изменить сценарий, чтобы сделать следующее?

увеличить шрифт на 1 размер и
выделить несколько слов одним запуском скрипта?

Спасибо!
Этот комментарий был сведен к минимуму модератором на сайте
Привет т.талн,

Если вы хотите увеличить размер шрифта на 1 и одновременно выделить несколько слов, добавьте следующую строку после строки "xCell.Characters(Len(xStrTmp) + 1, xHStrLen).Font.ColorIndex = 3"в коде VBA.
Внимание: вам нужно заранее узнать текущий размер шрифта выбранной ячейки, а затем ввести число на один размер больше, чем исходное слово. Число 12 в строке ниже — это размер шрифта, который я назначу соответствующим словам. И исходный размер шрифта слова 11.
xCell.Characters(Len(xStrTmp) + 1, xHStrLen).Font.Size = 12
Этот комментарий был сведен к минимуму модератором на сайте
Спасибо, это очень полезно. Как выделить слово вместо цвета шрифта?

С уважением.
Этот комментарий был сведен к минимуму модератором на сайте
Спасибо. это было действительно полезно. Может кто-нибудь подсказать, как раскрасить текст, а не выделять его?

С уважением
Этот комментарий был сведен к минимуму модератором на сайте
Привет, Шайк Файаз Хамад,

Excel не позволяет закрашивать часть ячейки. Сожалею, что не могу помочь вам с этой проблемой.
Этот комментарий был сведен к минимуму модератором на сайте
Бонжур Кристал,
Код Merci pour ce. Есть ли возможность адаптера для меттров и évidence plusieurs mots "Apple, Rose, Vert, Merci"
спасибо
Этот комментарий был сведен к минимуму модератором на сайте
Привет, Кус,

Следующий код VBA может помочь. После запуска кода вы получите диалоговое окно. Пожалуйста, введите слова, которые вы хотите выделить, и разделите их запятой.
https://www.extendoffice.com/images/stories/comments/comment-picture-zxm/highlight.png
Sub HighlightStrings()
'Updated by Extendoffice 20230130
    Dim xHStr As String, xStrTmp As String
    Dim xHStrLen As Long, xCount As Long, I As Long
    Dim xCell As Range
    Dim xArr
    Dim xArr2
    On Error Resume Next
    xHStr = Application.InputBox("What is the string to highlight:", "KuTools For Excel", , , , , , 2)
    If TypeName(xHStr) <> "String" Then Exit Sub
    Application.ScreenUpdating = False
    
    xArr2 = Split(xHStr, ",")
    For j = 0 To UBound(xArr2)
        xHStr = xArr2(j)
    
        xHStrLen = Len(xHStr)
        For Each xCell In Selection
            xArr = Split(xCell.Value, xHStr)
            xCount = UBound(xArr)
            If xCount > 0 Then
                xStrTmp = ""
                For I = 0 To xCount - 1
                    xStrTmp = xStrTmp & xArr(I)
                    xCell.Characters(Len(xStrTmp) + 1, xHStrLen).Font.ColorIndex = 3
                    xStrTmp = xStrTmp & xHStr
                Next
            End If
        Next
    Next
    
    Application.ScreenUpdating = True
End Sub
Здесь еще нет комментариев
Оставляйте свои комментарии
Публикация как гость
×
Оценить этот пост:
0   Характеристики
Предлагаемые места

Подписывайтесь на Нас

Copyright © 2009 - www.extendoffice.ком. | Все права защищены. Питаться от ExtendOffice, | Карта сайта
Microsoft и логотип Office являются товарными знаками или зарегистрированными товарными знаками Microsoft Corporation в США и / или других странах.
Защищено Sectigo SSL