Перейти к содержимому

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

Author: Xiaoyang Last Modified: 2025-08-07

В Excel может быть легко выделить ячейки на основе определенного текста, но здесь я хочу выделить конкретный текст внутри ячейки, чтобы он выделялся, а не вся ячейка. Это может быть проблемой для большинства из нас. В этой статье я расскажу о некоторых приемах для решения этой задачи в Excel.


Выделение одного или нескольких определенных текстов внутри нескольких ячеек с помощью кода VBA

Например, у меня есть диапазон текстовых строк, и теперь я хочу выделить определенный текст «Sky» в этих ячейках, чтобы получить результат, как показано на следующих скриншотах:

original data arrow right Highlight one specific text

Чтобы выделить только часть текста внутри ячейки, следующий код VBA может вам помочь.

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

2. Нажмите Вставка > Модуль и вставьте следующий код в окно Модуля.

Код VBA: Выделение части текста внутри ячейки:

Sub HighlightStrings()
'Updateby Extendoffice
Application.ScreenUpdating = False
Dim Rng As Range
Dim cFnd As String
Dim xTmp As String
Dim x As Long
Dim m As Long
Dim y As Long
cFnd = InputBox("Enter the text string to highlight")
y = Len(cFnd)
For Each Rng In Selection
  With Rng
    m = UBound(Split(Rng.Value, cFnd))
    If m > 0 Then
      xTmp = ""
      For x = 0 To m - 1
        xTmp = xTmp & Split(Rng.Value, cFnd)(x)
        .Characters(Start:=Len(xTmp) + 1, Length:=y).Font.ColorIndex = 3
        xTmp = xTmp & cFnd
      Next
    End If
  End With
Next Rng
Application.ScreenUpdating = True
End Sub

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

enter the text to highlight

4. После этого нажмите кнопку ОК, и весь указанный вами текст будет выделен только внутри ячеек, см. скриншот:

original data arrow right all text you specified are highlighted
Советы: Если вам нужно выделить несколько ключевых слов из текстовых строк, пожалуйста, примените следующий код:
Код VBA: Выделение нескольких ключевых слов из текстовых строк:
Sub HighlightStrings()
'Updateby Extendoffice
Application.ScreenUpdating = False
Dim Rng As Range
Dim cFnd As String
Dim xTmp As String
Dim x As Long
Dim m As Long
Dim y As Long
Dim xFNum As Integer
Dim xArrFnd As Variant
Dim xStr As String
cFnd = InputBox("Please enter the text, separate them by comma:")
If Len(cFnd) < 1 Then Exit Sub
xArrFnd = Split(cFnd, ",")
For Each Rng In Selection
With Rng
For xFNum = 0 To UBound(xArrFnd)
xStr = xArrFnd(xFNum)
y = Len(xStr)
m = UBound(Split(Rng.Value, xStr))
If m > 0 Then
xTmp = ""
For x = 0 To m - 1
xTmp = xTmp & Split(Rng.Value, xStr)(x)
.Characters(Start:=Len(xTmp) + 1, Length:=y).Font.ColorIndex = 3
xTmp = xTmp & xStr
Next
End If
Next xFNum
End With
Next Rng
Application.ScreenUpdating = True
End Sub

Затем, в появившемся окне, пожалуйста, введите ключевые слова, которые вы хотите выделить (разделите слова запятой), см. скриншот:
enter the keywords to highlight

И затем нажмите кнопку ОК, указанные слова будут выделены сразу, см. скриншоты:

original data arrow right the specified words are highlighted

Примечание: Указанные выше коды чувствительны к регистру.


Выделение одного или нескольких определенных текстов внутри нескольких ячеек с помощью удивительной функции

Если вы не знакомы с кодом в Excel, здесь я представлю простой инструмент - Kutools для Excel, с его функцией Mark Keyword вы можете выделить одно или несколько ключевых слов сразу внутри ячеек.

Kutools для Excel предлагает более 300 продвинутых функций для упрощения сложных задач, повышая креативность и эффективность. Интеграция с возможностями ИИ позволяет Kutools автоматизировать задачи с высокой точностью, делая управление данными без усилий. Подробная информация о Kutools для Excel...  Бесплатная пробная версия...

После установки Kutools для Excel выполните следующие действия:

1. Нажмите Kutools > Текст > Mark Keyword, см. скриншот:

click Mark Keyword feature of kutools

2. В диалоговом окне Mark Keyword выполните следующие операции:

  • Выберите диапазон данных, который вы хотите использовать, из текстового поля Диапазон;
  • Выберите ячейки, содержащие ключевые слова, которые вы хотите выделить, вы также можете ввести ключевые слова вручную (разделенные запятыми) в текстовое поле Ключевое слово.
  • В конце концов, вы должны указать цвет шрифта для выделения текста, отметив опцию Цвет шрифта ключевого слова. (Чтобы раскрасить все ячейки, содержащие ключевые слова, выберите опцию Цвет содержимого ячейки).

set the options in the dialog box

3. Затем нажмите кнопку ОК, и все указанные тексты будут выделены, как показано на следующем скриншоте:

all specified texts are highlighted

Примечание: Эта функция не чувствительна к регистру, если вы хотите выделить текст с учетом регистра, пожалуйста, отметьте Учитывать регистр в диалоговом окне Mark Keyword.


Выделение определенного текста внутри ячейки на основе другого текста с помощью кода VBA

Вот еще одна ситуация: у меня есть два столбца, где первый столбец содержит текстовые строки, а второй столбец — это определенный текст. Теперь мне нужно выделить соответствующий текст в первом столбце на основе определенного текста во втором столбце для каждой строки.

Highlight specific text within a cell based on other text

1. Нажмите и удерживайте клавиши ALT + F11, чтобы открыть окно Microsoft Visual Basic for Applications.

2. Нажмите Вставка > Модуль и вставьте следующий код в окно Модуля.

Код VBA: Выделение части текста внутри ячейки на основе другого текста:

Sub highlight()
'Updateby Extendoffice
    Dim xStr As String
    Dim xRg As Range
    Dim xTxt As String
    Dim xCell As Range
    Dim xChar As String
    Dim I As Long
    Dim J As Long
    On Error Resume Next
    If ActiveWindow.RangeSelection.Count > 1 Then
      xTxt = ActiveWindow.RangeSelection.AddressLocal
    Else
      xTxt = ActiveSheet.UsedRange.AddressLocal
    End If
LInput:
    Set xRg = Application.InputBox("please select the data range:", "Kutools for Excel", xTxt, , , , , 8)
    If xRg Is Nothing Then Exit Sub
    If xRg.Areas.Count > 1 Then
        MsgBox "not support multiple columns"
        GoTo LInput
    End If
    If xRg.Columns.Count <> 2 Then
        MsgBox "the selected range can only contain two columns "
        GoTo LInput
    End If
    For I = 0 To xRg.Rows.Count - 1
        xStr = xRg.Range("B1").Offset(I, 0).Value
        With xRg.Range("A1").Offset(I, 0)
            .Font.ColorIndex = 1
            For J = 1 To Len(.Text)
                If Mid(.Text, J, Len(xStr)) = xStr Then .Characters(J, Len(xStr)).Font.ColorIndex = 3
            Next
        End With
    Next I
End Sub

3. После вставки кода нажмите клавишу F5, чтобы запустить его, появится всплывающее окно, которое напомнит вам выбрать диапазон данных, содержащий как текстовую строку, так и определенный текст, который вы хотите выделить и на основе которого будете работать, см. скриншот:

select the data range which both contains the text string and specific text

4. Затем нажмите кнопку ОК, и весь соответствующий текст в первом столбце на основе определенного текста во втором столбце будет окрашен в красный цвет, как показано на следующем скриншоте:

all the corresponding text in the first column based on the specific text in the second column are colored red


Больше связанных статей:

  • Объединение ячеек столбцов и сохранение цвета текста в Excel
  • Как всем известно, при объединении или комбинировании ячеек столбцов в один столбец форматирование ячеек (например, цвет шрифта текста, форматирование чисел и т. д.) будет потеряно. В этой статье я представлю некоторые приемы для объединения ячеек столбцов в один и максимально простого сохранения цвета текста в Excel.
  • Отображение определенного текста на основе значений в другом столбце
  • Предположим, у меня есть список чисел, и теперь я хочу отобразить определенный текст в другом столбце на основе чисел этого столбца. Например, если число в ячейке находится между 1-100, я хочу, чтобы текст «Уменьшение» отображался в соседней ячейке, если число находится между 101-200, отображается текст «Стабильность», а если число больше 200, отображается текст «Увеличение», как показано на следующем скриншоте. Чтобы решить эту задачу в Excel, следующие формулы в этой статье могут вам помочь.
  • Суммирование ячеек с текстом и числами в Excel
  • Например, у меня есть список значений, содержащих числовые и текстовые строки, и теперь я хочу суммировать только числа на основе того же текста, посмотрите на следующий скриншот. Обычно вы не можете суммировать значения в списке с текстовой строкой напрямую, здесь я представлю вам несколько формул для выполнения этой задачи.

Лучшие инструменты для повышения продуктивности в Office

🤖 Kutools AI Aide: Переворот в анализе данных на основе: Интеллектуальное выполнение   |  Сгенерировать код  |  Создать Пользовательские Формулы  |  Анализ данных и генерация диаграмм  |  Вызов Kutools Functions
Популярные функции: Найти, выделить или отметить дубликаты   |  Удалить пустые строки   |  Объединить столбцы или ячейки без потери данных   |   Округлить...
Супер ПОИСК: VLookup с несколькими критериями    VLookup с несколькими значениями  |   Многолистовой поиск   |   Распознавание нечетких соответствий ....
Расширенный раскрывающийся список: Быстро создать раскр. список   |  Зависимый раскрывающийся список   |  Множественный выбор в раскрывающемся списке ....
Менеджер столбцов: Добавить определенное количество столбцов  |  Переместить столбцы  |  Переключить статус видимости скрытых столбцов  |  Сравнить диапазоны и столбцы ...
Рекомендуемые функции: Сетка фокусировки   |  Дизайн листа   |   Улучшенная строка формулы    Управление книгой и листами   |  Библиотека автотекста (Auto Text)   |  Выбор даты   |  Объединить данные   |  Шифрование/Расшифровка ячеек    Отправить письмо по списку   |  Супер фильтр   |   Специальный фильтр (фильтр по жирному/курсиву/зачеркиванию...) ...
Топ–15 наборов инструментов: 12 текстовых инструментов (Добавить текст, Удалить определенные символы, ...)   |   50+ типов диаграмм (Диаграмма Ганта, ...)   |   40+ практических формул (Расчет возраста на основе даты рождения, ...)   |   19 инструментов вставки (Вставить QR-код, Вставить изображение из пути, ...)   |  12 инструментов преобразования (Преобразовать в слова, Конвертация валюты, ...)   |  7 инструментов объединения и разделения (Расширенное объединение строк, Разделить ячейки, ...)   |   ... и многое другое
Используйте Kutools на вашем предпочитаемом языке – поддерживаются английский, испанский, немецкий, французский, китайский и более40 других языков!

Повысьте свои навыки работы в Excel с Kutools для Excel и ощутите новую эффективность. Kutools для Excel предлагает более300 расширенных функций для повышения продуктивности и экономии времени.  Щелкните здесь, чтобы получить наиболее нужную вам функцию...


Office Tab добавляет вкладочный интерфейс в Office, делая вашу работу значительно проще

  • Включите редактирование и чтение во вкладках в Word, Excel, PowerPoint, Publisher, Access, Visio и Project.
  • Открывайте и создавайте несколько документов во вкладках одного окна, а не в новых окнах.
  • Увеличьте свою продуктивность на50% и сократите сотни кликов мышью ежедневно!