Vba: كيفية تقسيم سلسلة إلى مصفوفة (مع مثال)
يمكنك استخدام بناء الجملة الأساسي التالي لتقسيم سلسلة إلى مصفوفة باستخدام VBA:
SubSplitString ()
Dim SingleValue() As String
Dim i As Integer
Dim j As Integer
For i = 2 To 7
SingleValue = Split(Range(" A " & i), " ")
For j = 1 To 2
Cells(i, j + 1).Value = SingleValue(j - 1)
Next j
Next i
End Sub
يقسم هذا المثال تحديدًا كل سلسلة في النطاق A2:A7 استنادًا إلى المسافات الموجودة في كل سلسلة، ثم يقوم بتعيين العناصر الناتجة لكل سلسلة إلى نطاقات الخلايا B2:B7 و C2:C7 .
يوضح المثال التالي كيفية استخدام بناء الجملة هذا عمليًا.
مثال: استخدام VBA لتقسيم سلسلة إلى مصفوفة
لنفترض أن لدينا قائمة السلاسل التالية في Excel:
لنفترض أننا نريد تقسيم كل سلسلة بناءً على مسافة بيضاء، ثم تعيين العناصر الناتجة لكل سلسلة إلى خلايا جديدة.
يمكننا إنشاء الماكرو التالي للقيام بذلك:
SubSplitString ()
Dim SplitValues() As String
Dim i As Integer
Dim j As Integer
For i = 2 To 7
SplitValues = Split(Range(" A " & i), " ")
For j = 1 To 2
Cells(i, j + 1).Value = SplitValues(j - 1)
Next j
Next i
End Sub
عندما نقوم بتشغيل هذا الماكرو، نحصل على الإخراج التالي:
لاحظ أن العمودين B وC يحتويان على الاسم الأول والأخير لكل اسم كامل في العمود A.
لاحظ أيضًا أنه يمكنك استخدام وظيفة VBA Split لتقسيم مصفوفة بناءً على محدد مختلف.
على سبيل المثال، لنفترض أن لدينا قائمة البريد الإلكتروني التالية:
لنفترض أننا نريد تقسيم كل بريد إلكتروني إلى مصفوفة بناءً على مكان ظهور الرمز @ .
يمكننا إنشاء الماكرو التالي للقيام بذلك:
SubSplitString ()
Dim SplitValues() As String
Dim i As Integer
Dim j As Integer
For i = 2 To 7
SplitValues = Split(Range(" A " & i), " @ ")
For j = 1 To 2
Cells(i, j + 1).Value = SplitValues(j - 1)
Next j
Next i
End Sub
عندما نقوم بتشغيل هذا الماكرو، نحصل على الإخراج التالي:
تقوم وظيفة التقسيم بتقسيم كل بريد إلكتروني في العمود A بناءً على الرمز @ وتعرض العناصر الناتجة في العمودين B وC.
ملاحظة : يمكنك العثور على الوثائق الكاملة لوظيفة VBA Split هنا .
مصادر إضافية
تشرح البرامج التعليمية التالية كيفية تنفيذ المهام الشائعة الأخرى باستخدام VBA:
فبا: كيفية حساب تكرارات الأحرف في سلسلة
VBA: كيفية التحقق مما إذا كانت السلسلة تحتوي على سلسلة أخرى
VBA: كيفية حساب الخلايا التي تحتوي على نص معين