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
عندما نقوم بتشغيل هذا الماكرو، نحصل على الإخراج التالي:
لاحظ أن هذا الماكرو يقسم كل سلسلة في العمود A بناءً على المسافات والواصلات ويعرض عناصر النص الفردية لكل سلسلة في الأعمدة B وC وD.
ملاحظة رقم 1: نحن نقوم بتقسيم السلاسل بناءً على الواصلات والمسافات في هذا المثال، ولكن يمكنك تقسيم السلاسل بناءً على أي محددات تريدها عن طريق تحديدها في وظيفتي الاستبدال والتقسيم .
ملاحظة رقم 2 : يمكنك العثور على الوثائق الكاملة لوظيفة VBA Split هنا .
مصادر إضافية
تشرح البرامج التعليمية التالية كيفية تنفيذ المهام الشائعة الأخرى باستخدام VBA:
فبا: كيفية حساب تكرارات الأحرف في سلسلة
VBA: كيفية التحقق مما إذا كانت السلسلة تحتوي على سلسلة أخرى
VBA: كيفية حساب الخلايا التي تحتوي على نص معين