Vba: كيفية تقسيم سلسلة بناءً على محددات متعددة


يمكنك استخدام بناء الجملة الأساسي التالي لتقسيم سلسلة بناءً على محددات متعددة في VBA:

 SubSplitString ()

    Dim SingleValue() As String
    Dim i As Integer
    Dim j As Integer

    For i = 2 To 7
    newString = Replace(Range(" A " & i), " - ", " ")
    SingleValue = Split(newString, " ")
    
       For j = 1 To 3
           Cells(i, j + 1).Value = SingleValue(j - 1)
       Next j
       
    Next i
    
End Sub

يقسم هذا المثال تحديدًا كل سلسلة في النطاق A2:A7 استنادًا إلى الواصلات أو المسافات في كل سلسلة، ثم يقوم بتعيين العناصر الناتجة لكل سلسلة إلى الخلايا المجاورة في الأعمدة B وC وD.

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

يوضح المثال التالي كيفية استخدام بناء الجملة هذا عمليًا.

مثال: تقسيم سلسلة بناءً على محددات متعددة في VBA

لنفترض أن لدينا قائمة الأسماء التالية في Excel:

لنفترض أننا نريد تقسيم كل اسم بناءً على الواصلات أو المسافات، ثم نقوم بتعيين العناصر الناتجة لكل سلسلة إلى خلايا جديدة.

يمكننا إنشاء الماكرو التالي للقيام بذلك:

 SubSplitString ()

    Dim SingleValue() As String
    Dim i As Integer
    Dim j As Integer

    For i = 2 To 7
    newString = Replace(Range(" A " & i), " - ", " ")
    SingleValue = Split(newString, " ")
    
       For j = 1 To 3
           Cells(i, j + 1).Value = SingleValue(j - 1)
       Next j
       
    Next i
    
End Sub

عندما نقوم بتشغيل هذا الماكرو، نحصل على الإخراج التالي:

سلسلة VBA مقسمة بناءً على محددات متعددة

لاحظ أن هذا الماكرو يقسم كل سلسلة في العمود A بناءً على المسافات والواصلات ويعرض عناصر النص الفردية لكل سلسلة في الأعمدة B وC وD.

ملاحظة رقم 1: نحن نقوم بتقسيم السلاسل بناءً على الواصلات والمسافات في هذا المثال، ولكن يمكنك تقسيم السلاسل بناءً على أي محددات تريدها عن طريق تحديدها في وظيفتي الاستبدال والتقسيم .

ملاحظة رقم 2 : يمكنك العثور على الوثائق الكاملة لوظيفة VBA Split هنا .

مصادر إضافية

تشرح البرامج التعليمية التالية كيفية تنفيذ المهام الشائعة الأخرى باستخدام VBA:

فبا: كيفية حساب تكرارات الأحرف في سلسلة
VBA: كيفية التحقق مما إذا كانت السلسلة تحتوي على سلسلة أخرى
VBA: كيفية حساب الخلايا التي تحتوي على نص معين

Add a Comment

ایمئیل یایینلانمایاجاق ایسته‎نیله‎ن بوشلوقلار خاللانمیشدیر *