Как выделить определенный текст внутри ячейки на основе другого текста?
В 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, с его функцией Mark Keyword вы можете выделить одно или несколько ключевых слов сразу внутри ячеек.
После установки Kutools для Excel выполните следующие действия:
1. Нажмите Kutools > Текст > Mark Keyword, см. скриншот:
2. В диалоговом окне Mark Keyword выполните следующие операции:
- Выберите диапазон данных, который вы хотите использовать, из текстового поля Диапазон;
- Выберите ячейки, содержащие ключевые слова, которые вы хотите выделить, вы также можете ввести ключевые слова вручную (разделенные запятыми) в текстовое поле Ключевое слово.
- В конце концов, вы должны указать цвет шрифта для выделения текста, отметив опцию Цвет шрифта ключевого слова. (Чтобы раскрасить все ячейки, содержащие ключевые слова, выберите опцию Цвет содержимого ячейки).
3. Затем нажмите кнопку ОК, и все указанные тексты будут выделены, как показано на следующем скриншоте:
Примечание: Эта функция не чувствительна к регистру, если вы хотите выделить текст с учетом регистра, пожалуйста, отметьте Учитывать регистр в диалоговом окне Mark Keyword.
Выделение определенного текста внутри ячейки на основе другого текста с помощью кода 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% и сократите сотни кликов мышью ежедневно!