كيف يمكن تمييز نص معيّن داخل خلية بناءً على نصٍ آخر؟
في إكسل، قد يكون تمييز الخلايا بناءً على نص معيّن أمرًا سهلاً، لكنني هنا أسعى إلى تسليط الضوء على جزء محدّد من النص داخل الخلية—وليس الخلية بأكملها—لجعله بارزًا. وقد يُعدّ هذا تحديًا للكثيرين منا. في هذه المقالة، سأعرض بعض الحيل الفعّالة لتحقيق هذه المهمة في إكسل.

تمييز نص واحد أو أكثر من النصوص المحددة داخل خلايا متعددة باستخدام كود VBA
على سبيل المثال، لدي نطاق من السلاسل النصية، وأرغب الآن في تمييز النص المحدد "سكاي" في هذه الخلايا للحصول على النتيجة كما هو موضح في لقطات الشاشة التالية:
![]() | ![]() | ![]() |
لتمييز جزء معيّن من النص داخل الخلية، يمكن أن يساعدك كود VBA التالي.
1. حدد الخلايا التي تريد تمييز النص المحدد فيها، ثم اضغط باستمرار على مفاتيحALT + F11 لفتح نافذةمايكروسوفت فيجوال بيسك للتطبيقات.
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
بعد ذلك، في المربع المنبثق، يُرجى إدخال الكلمات المفتاحية التي تريد تمييزها (افصل بين الكلمات بفاصلة)، انظر لقطة الشاشة:
ثم انقر على زرموافق، سيتم تمييز الكلمات المحددة فورًا، انظر لقطات الشاشة:
![]() | ![]() | ![]() |
ملاحظة: الأكواد المذكورة أعلاه حساسة لحالة الأحرف.
تمييز نص واحد أو أكثر من النصوص المحددة داخل خلايا متعددة باستخدام ميزة رائعة
إذا لم تكن معتادًا على استخدام الكود في إكسل، فسأعرض لك أداة سهلة –Kutools لـ Excel. باستخدام ميزتهاوضع علامات على الكلمات الرئيسية، يمكنك تمييز كلمة مفتاحية واحدة أو أكثر من الكلمات المحددة دفعة واحدة داخل الخلايا.
بعد تثبيتKutools لـ Excel، يُرجى اتباع الخطوات التالية:
1. انقر علىKutools > نص > وضع علامات على الكلمات الرئيسية، انظر لقطة الشاشة:

2. في مربع حواروضع علامات على الكلمات الرئيسية، يُرجى تنفيذ العمليات التالية:
- حدد نطاق البيانات الذي تريد استخدامه من مربعالنطاقالنصي؛
- حدد الخلايا التي تحتوي على الكلمات المفتاحية التي تريد تمييزها، أو يمكنك إدخال الكلمات المفتاحية يدويًا (مفصولة بفواصل) في مربعالكلمة المفتاحيةالنصي
- أخيرًا، لتمييز النصوص، يجب تحديد لون الخط عبر اختيار خيارلون خط الكلمة الرئيسية. (ولتمييز الخلايا بأكملها التي تحتوي على الكلمات المفتاحية، اختر خيار)لون محتوى الخلية.)

3. بعد ذلك، انقر على زرموافق، وسيتم تمييز جميع النصوص المحددة كما هو موضح في لقطة الشاشة أدناه:

ملاحظة: هذه الميزة لا تُميّز بين الأحرف الكبيرة والصغيرة؛ فإذا كنت ترغب في تمييز النص مع مراعاة حالة الأحرف، يُرجى تحديد خيارمطابقة حالة الأحرففي مربع حواروضع علامات على الكلمات الرئيسية.
تمييز نص محدد داخل خلية بناءً على نص آخر باستخدام كود VBA
حالة أخرى: لدي عمودان؛ يحتوي الأول على سلاسل نصية، بينما يحتوي الثاني على نص معيّن، وأحتاج الآن إلى تمييز النص المقابل في العمود الأول وفقًا للنص المحدد في العمود الثاني لكل صف.

1. اضغط باستمرار على مفاتيحALT + F11 لفتح نافذةمايكروسوفت فيجوال بيسك للتطبيقات.
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. ثم انقر على زرموافق، وسيتم تلوين جميع النصوص المقابلة في العمود الأول باللون الأحمر وفقًا للنص المحدد في العمود الثاني، كما هو موضح في لقطة الشاشة التالية:

مقالات ذات صلة إضافية:
- تنسيق جزء من النص بالعريض عند دمج عمودين في إكسل
- في ورقة عمل إكسل، بعد دمج قيم خليتين باستخدام صيغة، قد تلاحظ أنه لا يمكنك تنسيق جزء من النص بالعريض داخل الخلية التي تحتوي على الصيغة المدمجة. قد يكون هذا مزعجًا في بعض الأحيان؛ فكيف يمكنك تنسيق جزء من النص بالعريض عند دمج عمودين في إكسل؟
- دمج أعمدة الخلايا والاحتفاظ بلون النص في إكسل
- كما نعلم جميعًا، عند دمج أعمدة الخلايا في عمود واحد، يُفقد تنسيق الخلية—مثل لون نص الخط وتنسيق الأرقام وغيره. في هذه المقالة، سأعرض بعض الحيل لدمج أعمدة الخلايا في عمود واحد مع الاحتفاظ بلون النص بأبسط طريقة ممكنة في إكسل.
- عرض نص محدد بناءً على القيمة في عمود آخر
- افترض أن لدي قائمة من الأرقام، وأرغب الآن في عرض نص محدد في عمود آخر بناءً على أرقام هذا العمود. على سبيل المثال، إذا كان الرقم في الخلية بين 1-100، أريد أن يظهر النص «انخفاض» في الخلية المجاورة، وإذا كان الرقم بين 101-200، يُعرض النص «مستقر»، وإذا كان الرقم أكبر من 200، يُعرض النص «زيادة» كما هو موضح في لقطة الشاشة التالية. لحل هذه المهمة في إكسل، قد تساعدك الصيغ التالية في هذه المقالة.
- جمع الخلايا التي تحتوي على تقسيم حسب النص والرقم في إكسل
- على سبيل المثال، لدي قائمة من القيم تحتوي على سلاسل رقمية ونصية، وأرغب الآن في جمع الأرقام فقط بناءً على نفس النص، كما هو موضح في لقطة الشاشة التالية. عادةً، لا يمكنك جمع القيم في القائمة التي تحتوي على سلاسل نصية مباشرةً؛ لذا سأعرض لك بعض الصيغ للتعامل مع هذه المهمة.
أفضل أدوات الإنتاجية لمكتبتك
عزِّز مهاراتك في 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 يومًا بكامل الميزات— بدون تسجيل، بدون بطاقة ائتمان
- أفضل قيمة— وفِّر مقارنةً بشراء الإضافات بشكل منفصل



