سلسلة استبدال VBA | كيفية استبدال النص في سلسلة باستخدام VBA؟

سلسلة استبدال Excel VBA

الاستبدال هو وظيفة ورقة العمل بالإضافة إلى وظيفة VBA. تساعدنا هذه الوظيفة على استبدال كلمة معينة من السلسلة بسلسلة أخرى. وهي تعمل بشكل مشابه للدالة البديلة في VBA.

أثناء التعامل مع سلسلة الاختبار أو قيم البيانات النصية ، من الواضح أن استبدال شيء ما أو استبداله بشيء آخر ، أو ضم بيانات خليتين في خلية واحدة أو تقسيم بيانات خلية واحدة إلى أشياء متعددة. هذه كلها مهام شائعة نقوم بها يومًا بعد يوم في مكان عملنا.

إذن ، كيف نستبدل كلمة واحدة في السلسلة بكلمة أخرى؟ على سبيل المثال ، إذا كانت السلسلة "الهند دولة نامية والهند في الدولة الآسيوية" ، فمن هذه السلسلة نحتاج إلى استبدال كلمة "الهند" والتغيير إلى "بهارات".

هذا ممكن باستخدام وظيفة الاستبدال. في هذه المقالة ، سنوضح لك كيفية استبدال السلاسل في ترميز VBA.

استبدال الوظيفة

  • التعبير: هذا ليس سوى قيمة السلسلة الأصلية التي نحاول من خلالها استبدال شيء ما بشيء ما. على سبيل المثال أدناه سلسلة التعبير - "الهند بلد نام والهند في الدولة الآسيوية"
  • Find String: ما هي السلسلة التي نحاول استبدالها. على سبيل المثال في سلسلة Expression نحاول استبدال كلمة "India".
  • استبدال السلسلة: ما هي السلسلة البديلة التي نستبدل بها سلسلة البحث ؟ لذا ، في هذه الحالة ، نحاول استبدال كلمة "India" بكلمة "Bharath".
  • [بدء]: هذه معلمة اختيارية. في السلسلة أعلاه (التعبير) لدينا كلمتان "India" لذا من أي موضع في سلسلة البحث نحتاج إلى بدء عملية الاستبدال. على سبيل المثال ، إذا قلنا 2 فسيبدأ في استبدال كلمة "الهند" من الموضع الثاني فصاعدًا.
  • [Count]: إذا ظهرت سلسلة البحث عدة مرات في Expression ، فكم عدد الكلمات التي نحتاج إلى استبدالها.

على سبيل المثال ، إذا ظهرت كلمة "India" 5 مرات وإذا قدمت العدد على أنه 3 ، فسيتم استبدال الكلمات الثلاث الأولى "India" فقط.

كيفية استبدال النص في سلسلة باستخدام VBA؟

يمكنك تنزيل VBA Replace String Excel Template هنا - VBA Replace String Excel Template

مثال 1

سنحاول الآن استبدال كلمة "India" بكلمة "Bharath" من قيمة السلسلة أدناه.

"الهند دولة نامية والهند في الدولة الآسيوية"

أولاً ، ابدأ إجراء ماكرو Excel الآن.

رمز:

 Sub Replace_Example () End Sub 

حدد متغير VBA كسلسلة.

رمز:

 Sub Replace_Example () خافت NewString على هيئة String End Sub 

في هذا المتغير ، سنعرض قيمة سلسلة جديدة بعد استبدال كلمة "India" بـ "Bharath". لهذا المتغير افتح وظيفة الاستبدال.

الوسيطة الأولى لهذه الوظيفة هي "Expression" ، أي السلسلة التي نحاول استبدال كلمة منها ، لذا انسخ والصق السلسلة "الهند بلد نام والهند في البلد الآسيوي".

الحجة التالية هي "Find String" أي الكلمة التي نحتاجها لتحل محل أي "India".

الوسيطة التالية هي "Replace String" أي السلسلة التي نحتاج إليها لاستبدال كلمة "India" أي "Bharath".

حسنًا ، حتى الآن تجاهل الحجج المتبقية. اعرض الآن النتيجة في مربع الرسالة.

رمز:

 Sub Replace_Example () Dim NewString As String NewString = استبدال ("الهند دولة نامية والهند هي الدولة الآسيوية" ، "الهند" ، "بهارات") MsgBox NewString End Sub 

لنقم بتشغيل الكود باستخدام المفتاح F5 أو يدويًا ونرى نتيجة السلسلة الجديدة.

حسنًا ، انظر إلى النتيجة أعلاه حيثما كانت لدينا كلمة "India" تم استبدالها بكلمة "Bharath".

المثال رقم 2

سنرى الآن كيفية استخدام نفس الرمز مع المتغيرات. انظر إلى الكود أدناه.

رمز:

 Sub Replace_Example1 () Dim NewString مثل String Dim MyString As String Dim FindString كسلسلة Dim ReplaceString As String MyString = "الهند دولة نامية والهند هي الدولة الآسيوية" FindString = "India" ReplaceString = "Bharath" NewString = Replace (MyString ، FindString ، ReplaceString) MsgBox NewString End Sub 

في الكود أعلاه ، أعلنت عن ثلاثة متغيرات إضافية.

 خافت خافت MyString كسلسلة خافتة FindString كسلسلة خافتة استبدال سلسلة كسلسلة 

بالنسبة لهذه المتغيرات ، قمت بتعيين قيم ، بدلاً من توفير سلسلة Expression ، و Find String ، و Replace String ، سنقوم بتوفير متغير فقط لوظيفة الاستبدال.

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

المثال رقم 3

لنفترض أنك تريد استبدال كلمة "India" من الموضع الثاني فقط ، فنحن بحاجة إلى استخدام معلمة وظيفة الاستبدال ["ابدأ"]. انظر إلى الكود أدناه لمعلوماتك.

رمز:

 Sub Replace_Example2 () Dim NewString مثل String Dim MyString كسلسلة Dim FindString كسلسلة Dim ReplaceString As String MyString = "الهند دولة نامية والهند هي الدولة الآسيوية" FindString = "India" ReplaceString = "Bharath" NewString = Replace (MyString ، FindString ، ReplaceString ، البدء: = 34) MsgBox NewString End Sub 

شيء واحد إضافي أضفناه من الكود السابق هو معلمة "ابدأ" مثل 34. الآن قم بتشغيل الكود وشاهد النتيجة.

يمكننا الآن رؤية سلسلة فقط بعد الحرف 34 من السلسلة مع استبدال "India" بـ "Bharath".

المثال رقم 4

الآن على سبيل المثال ، إذا أردنا استبدال التكرار الأول فقط لكلمة "India" بـ "Bharath" ، فنحن بحاجة إلى استخدام معلمة ["Count"] لوظيفة الاستبدال.

أدناه هو رمز لك.

رمز:

 Sub Replace_Example3 () Dim NewString مثل String Dim MyString كسلسلة Dim FindString كسلسلة Dim ReplaceString As String MyString = "الهند دولة نامية والهند هي الدولة الآسيوية" FindString = "India" ReplaceString = "Bharath" NewString = Replace (MyString ، FindString ، ReplaceString ، العدد: = 1) MsgBox NewString End Sub 

قم بتشغيل الكود يدويًا أو من خلال المفتاح F5 وشاهد النتيجة.

كما ترون أعلاه ، فقد استبدل التكرار الأول لكلمة "الهند" بـ "Bharath" والمثال الثاني ظل كما هو.

أشياء يجب تذكرها هنا

  • الاستبدال عبارة عن عائلة دالة سلسلة في VBA.
  • في VBA ، تستبدل وظيفة الاستبدال جميع الكلمات المتوفرة بسلسلة مستبدلة إذا لم يتم تحديد معلمة العد.
  • ستحذف معلمة البداية عدد الأحرف المقدمة وتظهر النتيجة المتبقية.

$config[zx-auto] not found$config[zx-overlay] not found