كيفية البحث عن سلسلة فرعية باستخدام VBA (9 طرق)

Hugh West

إذا كنت تبحث عن بعض أسهل الطرق للعثور على سلسلة فرعية باستخدام VBA ، فأنت في المكان الصحيح. بعد الاطلاع على هذه المقالة ، ستتمكن من العثور على موضع سلسلة فرعية أو استخراج البيانات باستخدام هذه السلسلة الفرعية أو تغيير تنسيق سلسلة فرعية بسهولة. دعنا ندخل إلى المقالة.

تنزيل المصنف

نموذج المحتوى

9 طرق للبحث عن سلسلة فرعية باستخدام VBA

هنا ، لدي ما يلي جدول البيانات الذي سأعرض من خلاله طرق العثور على سلسلة فرعية في سلسلة باستخدام VBA. سأحاول أيضًا إظهار طرق العثور على سلسلة فرعية في سلسلة عشوائية.

لقد أجريت هذه المهمة باستخدام إصدار Microsoft Excel 365 ، يمكنك استخدام أي إصدار آخر وفقًا لراحتك.

الطريقة الأولى: البحث عن سلسلة فرعية في سلسلة باستخدام VBA

إذا كنت تريد العثور على السلسلة الفرعية المطلوبة في سلسلة باستخدام VBA ، فيمكنك استخدام وظيفة InStr في كود VBA.

الخطوة -01 :

➤انتقل إلى Developer Tab & gt؛ & gt؛ Visual Basic الخيار

ثم ، سيتم فتح محرر Visual Basic .

➤ انتقل إلى إدراج Tab & gt؛ & gt؛ الوحدة النمطية الخيار

بعد ذلك ، سيتم إنشاء وحدة .

الخطوة 02 :

➤ اكتب الكود التالي

7692

هنا ، InStr (1، “ أعتقد إذن أنا "،" أعتقد ") سيعيد موضع السلسلة الفرعية للسلسلة. 1 هو ملفموضع البداية ، " أعتقد إذن أنا" هي السلسلة التي ستجد فيها السلسلة الفرعية التي تريدها ، و "think" هي السلسلة الفرعية التي تريد البحث عنها. بشكل افتراضي حساس لحالة الأحرف ، لذا احذر من حالة السلسلة الفرعية التي تريد البحث عنها.

➤Press F5

النتيجة :

بعد ذلك ، ستحصل على ما يلي صندوق الرسائل الذي يحتوي على موضع السلسلة الفرعية "think" .

الطريقة الثانية: البحث عن سلسلة فرعية غير حساسة لحالة الأحرف في سلسلة

إذا كنت تريد العثور على السلسلة الفرعية المطلوبة في سلسلة بغض النظر عن الحالة باستخدام VBA ، فاتبع هذا الطريقة.

الخطوة 01 :

➤ اتبع الخطوة 01 من الطريقة الأولى

7132

هنا ، vbTextCompare يُستخدم للعثور على سلسلة فرعية غير حساسة لحالة الأحرف.

➤Press F5

النتيجة :

بعد ذلك ، ستحصل على ما يلي صندوق الرسائل الذي يحتوي على موضع السلسلة الفرعية "think" .

يمكنك أن تفعل الشيء نفسه باستخدام الكود التالي.

2784

هنا ، نص مقارنة الخيار سيجد سلسلة فرعية غير حساسة لحالة الأحرف.

➤ اضغط على F5

النتيجة :

بعد ذلك ، ll الحصول على ما يلي صندوق الرسائل الذي يحتوي على موضع السلسلة الفرعية "think" .

الطريقة الثالثة: استخدام وظيفة InstrRev في VBA

هنا ، سأوضح طريقة العثور على سلسلة فرعية من نهاية ملفسلسلة.

الخطوة 01 :

➤ اتبع الخطوة 01 من الطريقة 1

9508

سيجد InStrRev السلسلة الفرعية من الجانب الأيمن بدلاً من الجانب الأيسر.

➤Press F5

النتيجة :

بعد ذلك ، ستحصل على ما يلي صندوق الرسائل الذي يحتوي على موضع السلسلة الفرعية الثانية "I" من الجانب الأيمن.

الطريقة الرابعة: إيجاد موضع السلسلة الفرعية في سلسلة من البيانات

إذا كنت تريد العثور على الحرف الخاص "@" في معرف البريد الإلكتروني ، ثم اتبع هذه الطريقة. لقد أضفت هنا عمود الموضع لهذا الغرض.

الخطوة -01 :

➤ اتبع الخطوة 01 من الطريقة 1

4939

ستنشئ وظيفة تسمى FindSubstring (يمكنك استخدام أي اسم آخر)

value هي مرجع الخلية الذي يحتوي على السلسلة ويتم الإعلان عنها على أنها نطاق .

الخطوة -02 :

➤ حدد الإخراج الخلية E5

➤ اكتب الوظيفة التالية (تم إنشاؤها بواسطة VBA )

=FindSubstring(D5)

D5 هي الخلية التي تحتوي على السلسلة.

➤Press أدخل

➤ اسحب مقبض التعبئة لأسفل الأداة

النتيجة :

بعد ذلك ، ستحصل على مواضع الحرف الخاص " @" في معرف البريد الإلكتروني .

قراءات مماثلة:

  • كيفية البحثسلسلة في خلية باستخدام VBA في Excel (طريقتان)
  • FindNext باستخدام VBA في Excel (مثالان)
  • كيفية البحث عن سلسلة باستخدام VBA في Excel (8 أمثلة)
  • VBA Find Last Row in Excel (5 طرق)

الطريقة الخامسة: التحقق من سلسلة فرعية معينة في a سلسلة في نطاق البيانات

لنفترض أنك تريد كتابة اجتياز أو فشل في التوافق مع أسماء الطلاب اعتمادًا على عمود النتيجة حيث تم كتابة Pass أو Fail بين قوسين. للعثور على هذه السلسلة الفرعية في عمود النتيجة وتدوينها في عمود النجاح أو الفشل اتبع هذه الطريقة.

الخطوة 01 :

اتبع الخطوة 01 من الطريقة 1

1875

هنا ، نطاق الخلية هو C5: C10 وهو عمود النتيجة

InStr (cell.value، “Pass”) & gt؛ 0 هي الحالة التي يكون فيها الرقم أكبر من الصفر (عندما تحتوي الخلية على "تمرير" ) ، فسيستمر السطر التالي ويعطي الإخراج في الخلية المجاورة على أنه تم اجتيازه <12 <. الخلية المجاورة كـ فشلت .

ستستمر هذه الحلقة لكل خلية.

➤ اضغط F5

النتيجة :

بعد ذلك ، ستحصل على المخرجات التالية في النجاح أو الفشل عمود.

الطريقة السادسة: التحقق من سلسلة فرعية معينة في سلسلة واستخراج البيانات

سأوضح طريقة العثور على الطلاب المسميين مايكل في عمود اسم الطالب واستخرج البيانات المقابلة باستخدام VBA في هذه الطريقة.

الخطوة 01 :

➤ اتبع الخطوة 01 من الطريقة الأولى

7549

هنا ، لقد استخدمت B100 باعتباره نطاق الورقة النشط ولكن يمكنك استخدام أي نطاق وفقًا لاستخدامك.

InStr(1, Range("B" & i), "Michael") > 0 هو شرط التحقق مما إذا كانت الخلية موجودة يحتوي العمود B على مايكل

Range("E" & icount & ":G" & icount) هو النطاق الذي تريد بيانات الإخراج فيه و Range("B" & i & ":D" & i).value سيعطي القيم من الأعمدة B إلى D .

➤ اضغط F5

النتيجة :

بعد ذلك ، ستحصل على البيانات المستخرجة التالية للطلاب الذين لديهم اسم مايكل .

الطريقة 7: البحث في سلسلة فرعية عن Word

إذا كنت تريد العثور على السلسلة الفرعية ككلمة ، منخفضة هذه الطريقة.

الخطوة 01 :

➤ اتبع الخطوة 01 من الطريقة 1

1698

سيتحقق مما إذا كانت السلسلة تحتوي على هي ومن ثم سيتم إعطاء موضعها

➤Press F5

النتيجة :

بعد ذلك ، ستحصل على مربع الرسالة التالي الذي يعرض الكلمة الموجودة في الموضع: 6 (موضع هو ).

يمكنك الاختبارخارج هذا الرمز لكلمة ليست في السلسلة.

➤ اكتب الرمز التالي

4583

Press F5

النتيجة :

بعد ذلك ، ستحصل على مربع الرسالة التالي الذي يعرض الكلمة غير موجودة .

الطريقة 8: استخدام دالة Instr و LEFT

هنا ، سأشرح طريقة العثور على موضع سلسلة فرعية في سلسلة واستخراج النصوص قبل هذه السلسلة الفرعية باستخدام VBA و الوظيفة اليسرى .

الخطوة -01 :

➤ اتبع الخطوة 01 من الطريقة 1

4389

j = InStr(txt, "is") هو موضع السلسلة الفرعية وسيستخرج Left(txt, j - 1) السلاسل الفرعية قبل هو .

➤ اضغط F5

النتيجة :

بعد ذلك ، ستحصل على مربع الرسالة التالي الذي يظهر هنا (السلسلة الفرعية قبل هي ).

الطريقة 9: بالخط العريض a سلسلة فرعية معينة في سلسلة

يمكنك بخط غامق الدرجات قبل الأقواس في عمود النتيجة باتباع هذه الطريقة د.

الخطوة -01 :

➤ اتبع الخطوة -01 من الطريقة- 1

5995

txt = InStr(1, Cell, "(") سيعيد موضع القوس الأول و Cell.Characters(1, txt - 1).Font.Bold سيجعل السلسلة الفرعية قبل القوس الأول غامق .

الخطوة 02 :

➤ حدد عمود النتيجة

➤ اذهب إلى المطور Tab & gt؛ & gt؛ وحدات الماكرو الخيار

ثم ، ماكروسيظهر معالج .

➤ حدد Boldingsubstring (اسم رمز VBA) ثم تشغيل .

النتيجة :

بعد ذلك ، ستظهر الدرجات في النتيجة النتيجة العمود بخط غامق.

قسم التدريب

للقيام بالممارسة بنفسك قدمنا ​​قسمًا تدريب كما هو موضح أدناه في ورقة باسم تدريب . يرجى القيام بذلك بنفسك.

الاستنتاج

في هذه المقالة ، حاولت تغطية أسهل الطرق للعثور على سلسلة فرعية باستخدام VBA في Excel بشكل فعال. اتمنى انك ستجده مفيدا. إذا كان لديك أي اقتراحات أو أسئلة ، فلا تتردد في مشاركتها معنا.

هيو ويست مدرب ومحلل إكسل ذو خبرة عالية ولديه أكثر من 10 سنوات من الخبرة في هذا المجال. حاصل على درجة البكالوريوس في المحاسبة والمالية ودرجة الماجستير في إدارة الأعمال. لدى هيو شغف بالتدريس وقد طور منهجًا تعليميًا فريدًا يسهل اتباعه وفهمه. ساعدت معرفته الخبيرة ببرنامج Excel الآلاف من الطلاب والمهنيين في جميع أنحاء العالم على تحسين مهاراتهم والتميز في حياتهم المهنية. من خلال مدونته ، يشارك Hugh معرفته مع العالم ، ويقدم دروسًا مجانية في Excel وتدريبًا عبر الإنترنت لمساعدة الأفراد والشركات على تحقيق إمكاناتهم الكاملة.