Прескочи на основното съдържание

Как да маркирате определен текст в клетка въз основа на друг текст?

Автор: Xiaoyang Последна промяна: 2021-02-25

В Excel може да е лесно за нас да маркираме клетките въз основа на конкретен текст, но тук искам да маркирам конкретен текст в клетка, за да го направя изключителен, но не и цялата клетка. Това може би е проблем за повечето от нас. В тази статия ще говоря за някои трикове за решаване на тази задача в Excel.


Маркирайте един или повече конкретен текст в множество клетки с VBA код

Например, имам набор от текстови низове и сега искам да маркирам конкретния текст "небе” в тези клетки, за да получите резултата, както са показани следните екранни снимки:

За да маркирате само част от текст в клетка, следният VBA код може да ви помогне.

1. Изберете клетките, които искате да маркирате конкретния текст, и след това задръжте натиснат ALT + F11 за да отворите Microsoft Visual Basic за приложения прозорец.

2. Щракнете Поставете > Модулии поставете следния код в Модули Window.

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, И после щракнете върху OK целият текст, който сте посочили, е маркиран само в клетките, вижте екранната снимка:

Съвети: Ако трябва да маркирате няколко ключови думи от текстовите низове, моля, приложете кода по-долу:
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

След това в появилото се поле въведете ключовите думи, които искате да маркирате (разделете думите със запетая), вижте екранната снимка:

И след това щракнете OK бутон, посочените думи са маркирани наведнъж, вижте екранните снимки:

Забележка: Горните кодове са чувствителни към главни и малки букви.


Маркирайте един или повече конкретен текст в множество клетки с невероятна функция

Ако не сте запознати с кода в Excel, тук ще ви представя един лесен инструмент - Kutools за Excel, Със своята Маркирайте ключова дума можете да маркирате конкретната една или повече ключови думи наведнъж в клетките.

Забележка:За да приложите тези Маркирайте ключова дума функции, първо трябва да изтеглите Kutools за Excelи след това приложете функциите бързо и лесно.

След инсталиране Kutools за Excel, моля, направете следното:

1. Щракнете Kutools > Текст > Маркирайте ключова дума, вижте екранна снимка:

2. В Маркирайте ключова дума диалогов прозорец, моля, извършете следните операции:

  • Изберете диапазона от данни, който искате да използвате от Обхват текстово поле;
  • Изберете клетките, които съдържат ключовите думи, които искате да маркирате, можете също да въведете ключовите думи ръчно (разделени със запетая) в Ключова дума текстово поле
  • Накрая трябва да посочите цвят на шрифта за маркиране на текстовете с отметка Маркирайте цветовете на ключовите думи опция. (За да оцветите целите клетки, съдържащи ключовите думи, изберете Маркирайте цветовете на съдържанието на клетката опция)

3, След това кликнете върху Ok всички посочени текстове са маркирани, както е показано на екранната снимка по-долу:

Забележка: Тази функция не е чувствителна към главни и малки букви, ако искате да маркирате текста с големи и малки букви, моля, проверете Съвпадение в Маркирайте ключова дума диалогов прозорец.


Маркирайте конкретен текст в клетка въз основа на друг текст с VBA код

Ето друга ситуация, имам две колони, като първата колона съдържа текстовите низове, а втората колона е конкретният текст, сега трябва да подчертая относителния текст в първата колона въз основа на конкретния текст във втората колона за всяка ред.

1. Задръжте натиснат ALT + F11 за да отворите Microsoft Visual Basic за приложения прозорец.

2. Щракнете Поставете > Модулии поставете следния код в Модули Window.

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, И после щракнете върху OK целият съответстващ текст в първата колона въз основа на конкретния текст във втората колона е оцветен в червено, както следва екранна снимка:


Още относителни статии:

  • Удебелен текст на частта при свързване на две колони в Excel
  • В работен лист на Excel, след свързване на две клетъчни стойности с формули, може да откриете, че няма да удебели част от текста в комбинираната клетка с формула. Това понякога може да е досадно, как бихте могли да удебелите част от текста, когато свързвате две колони в Excel?
  • Свързване на клетъчни колони и запазване на цвета на текста в Excel
  • Както всички знаем, докато конкатенирате или комбинирате клетъчни колони в една колона, форматирането на клетката (като цвят на шрифта на текста, форматиране на числа и т.н.) ще бъде загубено. В тази статия ще представя някои трикове за комбиниране на клетъчните колони в една и запазване на цвета на текста възможно най-лесно в Excel.
  • Показване на конкретен текст въз основа на стойности в друга колона
  • Да предположим, че имам списък с числа, сега искам да покажа някакъв конкретен текст в друга колона въз основа на номерата на тази колона. Например, ако номерът на клетката е между 1-100, искам текстът „Намаляване“ да се показва в съседна клетка, ако числото е между 101-200, да се показва текст „Стабилно“, а ако числото е по-голямо от 200 , се показва текст „Увеличаване“, както е показано на следната екранна снимка. За да разрешите тази задача в Excel, следните формули в тази статия могат да ви помогнат.
  • Сумиране на клетки с текст и числа в Excel
  • Например, имам списък със стойности, съдържащ числови и текстови низове, сега искам да сумирам само числата въз основа на един и същ текст, вижте следната екранна снимка. Обикновено не можете директно да сумирате стойностите в списъка с текстов низ, тук ще ви представя някои формули за справяне с тази задача.

Най-добрите инструменти за продуктивност в офиса

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

Усъвършенствайте уменията си за Excel с Kutools за Excel и изпитайте ефективност, както никога досега. Kutools за Excel предлага над 300 разширени функции за повишаване на производителността и спестяване на време.  Щракнете тук, за да получите функцията, от която се нуждаете най-много...

Описание


Раздел Office Внася интерфейс с раздели в Office и прави работата ви много по-лесна

  • Разрешете редактиране и четене с раздели в Word, Excel, PowerPoint, Publisher, Access, Visio и Project.
  • Отваряйте и създавайте множество документи в нови раздели на един и същ прозорец, а не в нови прозорци.
  • Увеличава вашата производителност с 50% и намалява стотици кликвания на мишката за вас всеки ден!
Comments (39)
No ratings yet. Be the first to rate!
This comment was minimized by the moderator on the site
Thank you for "Highlight A Specific Text Within Multiple Cells With VBA Code" It works great. Would you please explain:
I need remove "Highlight"

so what can I do

thanks
This comment was minimized by the moderator on the site
Hello, Mukesh
If you want to delete the specific text from multiple cells, you can apply the Find & Replace feature in Excel.
You just need to enter the specific text that you want to delete into the Find textbox, and leave the Replace box blank, at last, click Replace All to get your results.
Please have a try, hope it can help you!
This comment was minimized by the moderator on the site
This is amazing! One question: Is there any way that an Undo (CTRL+Z) can be used after running this?
This comment was minimized by the moderator on the site
Hello, ChristineW,The vba codes can't support Undo, so when applying the code, you'd better copy and paste the original data to another sheet first.If you use Kutools for Excel, the utility support Undo.
This comment was minimized by the moderator on the site
JUST WANT TO SLAY THANK YOU AS THE VBA FORMULA WORKS FOR ME... IT AWESOME.
This comment was minimized by the moderator on the site
Wow! Thank you!
This comment was minimized by the moderator on the site
Awesome. thanks
This comment was minimized by the moderator on the site
This was very useful, thanks very much!
This comment was minimized by the moderator on the site
Hi,
Please any one help me. I want to highlight the specific number in same sentence. For ex : " 2 days leave scansion" want to highlight only "2" in sentence.
This comment was minimized by the moderator on the site
Hi, anyone help me this. i want to highlight the Specific number in Cell within the same sentence. for Ex : " 2 days leave scansion " in this sentence want to highlight number.
This comment was minimized by the moderator on the site
Hi,
could anyone help me with the following

my Cells in Column "G" contain the text from Column Z to AN, not compulsory that Column g contains all the text from Z to AN.

My work here is to Highlight the text in Column G if it does not available in any of Column Z - AN

For example : Cell G1 contains (Hello sir I am doing well) but The text "Sir" do not exist in Column "Z1" to "AN1"

So i need to highlight the text "Sir"
This comment was minimized by the moderator on the site
i get a run-time error '13', type mismatch when i run the script. any suggestions?
This comment was minimized by the moderator on the site
I had the same issue; I found that one of my collumns were formulas and it was looking in them which was what triggered the error 13. Selected a range wihtout formula containing the text to highlight and it worked.
There are no comments posted here yet
Load More
Please leave your comments in English
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations