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

Выделите один или несколько конкретных фрагментов текста в нескольких ячейках с помощью кода VBA
Например, у меня есть диапазон текстовых строк, и теперь я хочу выделить конкретный текст «Sky» в этих ячейках, чтобы получить результат, как показано на следующих снимках экрана:
![]() | ![]() | ![]() |
Чтобы выделить лишь часть текста внутри ячейки, воспользуйтесь приведённым ниже кодом 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, чтобы запустить код, — появится диалоговое окно с запросом ввести текст, который нужно выделить (см. снимок экрана):

4. Затем нажмите кнопку ОК, и весь указанный вами текст будет выделен только внутри ячеек — см. снимок экрана:
![]() | ![]() | ![]() |
Код 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
Затем во всплывающем окне введите ключевые слова, которые нужно выделить (разделяйте их запятыми); см. снимок экрана:
Затем нажмите кнопку ОК, и указанные слова будут сразу выделены — см. снимки экрана:
![]() | ![]() | ![]() |
Примечание: приведённые выше коды чувствительны к регистру.
Выделите один или несколько конкретных фрагментов текста в нескольких ячейках с помощью потрясающей функции
Если вы не знакомы с кодами в Excel, позвольте представить вам простой инструмент — Kutools для Excel. С помощью его функции Отметка ключевых слов вы можете одновременно выделять одно или несколько конкретных ключевых слов прямо в ячейках.
После установки Kutools для Excelвыполните следующие действия:
1. Нажмите Kutools > Текст > Отметка ключевых слов, см. снимок экрана:

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

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

Примечание: эта функция не учитывает регистр. Если вы хотите выделить текст с учётом регистра, установите флажок Учитывать регистр в диалоговом окне Отметка ключевых слов.
Выделите конкретный текст внутри ячейки на основе другого текста с помощью кода VBA
Вот ещё один случай: у вас есть два столбца — первый содержит текстовые строки, а второй — конкретный текст. Теперь нужно выделить соответствующий фрагмент в первой колонке, основываясь на указанном тексте из второй колонки для каждой строки.

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, чтобы запустить его. Появится диалоговое окно с запросом выбрать диапазон данных, содержащий как текстовую строку, так и конкретный текст, который необходимо выделить и использовать в качестве основы (см. снимок экрана):

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

Другие связанные статьи:
- Жирное начертание части текста при объединении двух столбцов в Excel
- После объединения значений двух ячеек на листе Excel с помощью формулы вы можете заметить, что невозможно выделить жирным шрифтом только часть текста в результирующей ячейке. Это может быть раздражающим в определённых ситуациях. Как сделать жирным лишь часть текста при объединении двух столбцов в Excel?
- Объединение столбцов ячеек с сохранением цвета текста в Excel
- Как известно, при объединении нескольких столбцов ячеек в один всё форматирование — например, цвет шрифта или числовой формат — обычно теряется. В этой статье я покажу простые приёмы, которые помогут вам объединить столбцы в Excel и при этом сохранить цвет текста.
- Отображение определённого текста На основе значения в другом столбце
- Допустим, у вас есть список чисел, и вы хотите отобразить определённый текст в соседнем столбце в зависимости от этих значений. Например, если число находится в диапазоне от 1 до 100 — пусть появляется надпись «Уменьшение», от 101 до 200 — «Стабильно», а при значениях свыше 200 — «Увеличение», как показано на снимке экрана ниже. Чтобы реализовать это в Excel, воспользуйтесь формулами, приведёнными в этой статье.
- Суммирование ячеек с Разделить по тексту и числу в Excel
- Например, у меня есть список значений, содержащих числовые и текстовые строки, и теперь я хочу суммировать только числа на основе одинакового текста, как показано на следующем снимке экрана. Обычно вы не можете напрямую суммировать значения в списке, содержащем текстовые строки. Здесь я познакомлю вас с некоторыми формулами для выполнения этой задачи.
Лучшие инструменты повышения продуктивности в Office
Раскройте весь потенциал Excel с помощью Kutools для Excel и ощутите эффективность как никогда раньше.Kutools для Excel предлагает более 300 расширенных функций для повышения продуктивности и Экономия времени.Нажмите здесь, чтобы получить нужную Вам функцию…
Office Tab добавляет в Office вкладки и значительно упрощает Вашу работу
- Включите редактирование и чтение во вкладках в Word, Excel, PowerPoint, Publisher, Access, Visio и Project.
- Открывайте и создавайте несколько документов во вкладках одного окна — вместо того чтобы использовать отдельные окна.
- Повышает вашу продуктивность на 50 % и экономит сотни кликов мышью каждый день!
Все надстройки Kutools — один установщик
Kutools for Office — набор надстроек для Excel, Word, Outlook и PowerPoint, а также Office Tab Pro, идеально подходящий командам, работающим с разными приложениями Office.
- Единый комплект— надстройки для Excel, Word, Outlook и PowerPoint + Office Tab Pro
- Один установщик, одна лицензия— настройка занимает считанные минуты (готово для MSI)
- Лучше работать вместе— оптимизированная продуктивность во всех приложениях Office
- 30-дневная полнофункциональная пробная версия— без регистрации и кредитной карты
- Лучшее соотношение цены и качества— экономия по сравнению с покупкой отдельных надстроек



