سلسلة VBA | كيفية ربط السلاسل معًا في VBA؟

يعني التسلسل ضم قيمتين أو سلسلتين معًا ، على غرار التفوق الذي نستخدمه & أو المعروف أيضًا باسم عامل علامة العطف للتسلسل ، سلسلتان متسلسلتان نستخدمهما والمشغل مثل String 1 & String 2 ، والآن هناك شيء مهم يجب تذكره وهو ذلك أثناء استخدام عامل التشغيل & نحتاج إلى توفير مسافات أو سيعتبره VBA طويلاً.

سلاسل VBA المتسلسلة

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

لدينا وظيفة تسمى CONCATENATE في Excel والتي ستقوم بدمج قيمتين أو أكثر معًا أو قيمتين أو أكثر من قيم الخلايا معًا.

لكن في VBA ، ليس لدينا أي وظيفة مضمنة لتوصيل قيمتين أو أكثر معًا. في الواقع ، لا يمكننا حتى الوصول إلى فئة دالة ورقة العمل للوصول إلى وظيفة VBA CONCATENATE كدالة في ورقة العمل.

كيفية ربط السلاسل في VBA؟

إذا لم يكن لدينا أي نوع من الوظائف المضمنة لسلسلة القيم وحتى وظيفة ورقة العمل غير متكاملة مع VBA. الآن التحدي هو كيف نجمع القيم؟

على الرغم من عدم وجود وظائف مضمنة ، لا يزال بإمكاننا دمجها في VBA باستخدام رمز "علامة العطف" (&).

إذا كنت تتابع منشوراتنا بانتظام ، فغالبًا ما نستخدم رمز العطف (&) في الترميز الخاص بنا.

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

الخطوة 1: انتقل إلى محرر Visual Basic وقم بإنشاء إجراء فرعي لـ VBA.

الخطوة 2: تحديد ثلاثة متغيرات على أنها سلسلة .

رمز:

 Sub Concatenate_Example () خافت الاسم الأول كسلسلة خافت الاسم الأخير كسلسلة خافت الاسم الكامل كسلسلة نهاية فرعية 

الخطوة 3: الآن قم بتعيين الاسم الأول واسم العائلة للمتغير.

رمز:

 Concatenate_Example () خافت الاسم الأول كسلسلة خافت الاسم الأخير كسلسلة خافت الاسم الكامل كسلسلة الاسم الأول = "Sachin" Last_Name = "Tendulkar" End Sub 

الخطوة 4: الآن قم بدمج هذين الاسمين إلى المتغير Full_Name باستخدام متغير علامة العطف.

رمز:

 Concatenate_Example () خافت الاسم الأول كسلسلة خافت الاسم الأخير كسلسلة خافت الاسم الكامل كسلسلة الاسم الأول = "Sachin" Last_Name = "Tendulkar" Full_Name = First_Name & Last_Name End Sub 

الخطوة 5: الآن اعرض قيمة المتغير Full_Name في مربع الرسالة.

رمز:

 Concatenate_Example () خافت الاسم الأول كسلسلة خافت الاسم الأخير كسلسلة خافت الاسم الكامل كسلسلة First_Name = "Sachin" Last_Name = "Tendulkar" Full_Name = First_Name & Last_Name MsgBox Full_Name End Sub 

الآن قم بتشغيل الكود وسوف نحصل على الاسم الكامل في مربع الرسالة.

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

رمز:

 Concatenate_Example () خافت الاسم الأول كسلسلة خافت الاسم الأخير كسلسلة خافت الاسم الكامل كسلسلة First_Name = "Sachin" Last_Name = "Tendulkar" Full_Name = First_Name & "" & Last_Name MsgBox Full_Name End Sub 

سيعطي هذا الاسم الكامل الصحيح الآن.

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

نظرًا لأننا نحتاج إلى دمج العديد من الأسماء ، نحتاج إلى استخدام حلقات لدمج الاسم الأول واسم العائلة. سوف يقوم الكود أدناه بالمهمة نيابة عنك.

رمز:

 Sub Concatenate_Example1 () Dim i As Integer For i = 2 إلى 9 Cells (i، 3) .Value = Cells (i، 1) & "" & Cells (i، 2) Next i End Sub 

سيجمع هذا الاسم الأول واسم العائلة تمامًا مثل وظيفة سلسلة VBA الخاصة بنا.

خطأ شائع في Ampers و VBA Concatenation

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

لا يمكننا الجمع بين القيم ورموز العطف معًا وإلا سنحصل على خطأ في التحويل البرمجي كما هو موضح أدناه.

سلسلة VBA باستخدام وظيفة JOIN

في VBA ، يمكننا استخدام وظيفة JOIN لدمج القيم. أولاً ، انظر إلى بناء جملة دالة VBA JOIN.

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

سيظهر الرمز أدناه مثالاً على ذلك.

رمز:

 Sub Concatenate_Example2 () Dim MyValues ​​كـ Variant Dim Full_Name كسلسلة MyValues ​​= Array ("Sachin"، "Tendulkar") Full_Name = Join (MyValues، "") MsgBox Full_Name End Sub 

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