كيفية تمييز نص معين داخل الخلية بناءً على نص آخر؟
في 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، يرجى القيام بالعمليات التالية:
- حدد نطاق البيانات الذي تريد استخدامه من مربع النص Range؛
- حدد الخلايا التي تحتوي على الكلمات الرئيسية التي تريد تمييزها، يمكنك أيضًا إدخال الكلمات الرئيسية يدويًا (مفصولة بفاصلة) في مربع النص Keyword
- أخيرًا، يجب عليك تحديد لون خط لتمييز النصوص عن طريق تحديد خيار Mark keyword colors. (لتلوين الخلايا بالكامل التي تحتوي على الكلمات الرئيسية، حدد الخيار Mark the cell content colors)
3. ثم، انقر فوق زر موافق، سيتم تمييز جميع النصوص المحددة كما هو موضح في لقطة الشاشة أدناه:
ملاحظة: هذه الميزة ليست حساسة لحالة الأحرف، إذا كنت تريد تمييز النص بطريقة حساسة لحالة الأحرف، يرجى تحديد Match Case في مربع الحوار 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
- على سبيل المثال، لدي قائمة من القيم تحتوي على سلاسل عددية ونصية، الآن أريد جمع الأرقام فقط بناءً على نفس النص، انظر إلى لقطة الشاشة التالية. بشكل طبيعي، لا يمكنك جمع القيم في القائمة التي تحتوي على سلاسل نصية مباشرة، هنا، سأقدم لك بعض الصيغ للتعامل مع هذه المهمة.
أفضل أدوات الإنتاجية لمكتب العمل
عزز مهاراتك في Excel مع Kutools لـ Excel، واختبر الكفاءة كما لم يحدث من قبل. Kutools لـ Excel يقدم أكثر من300 ميزة متقدمة لزيادة الإنتاجية وتوفير وقت الحفظ. انقر هنا للحصول على الميزة التي تحتاجها أكثر...
Office Tab يقدم واجهة التبويب لـ Office، ويجعل عملك أسهل بكثير
- تمكين تحرير وقراءة المستندات عبر التبويبات في Word وExcel وPowerPoint.
- افتح وأنشئ عدة مستندات في تبويبات جديدة ضمن نفس النافذة، بدلاً من فتحها في نوافذ منفصلة.
- يزيد إنتاجيتك بنسبة50%، ويقلل مئات النقرات بالماوس يومياً!