انقسام سلسلة VBA إلى صفيف | كيفية تقسيم السلسلة إلى صفيف في Excel VBA؟
انقسام سلسلة Excel VBA إلى صفيف
السلسلة عبارة عن مجموعة من الأحرف مرتبطة ببعضها البعض ، عندما يتم تقسيم هذه الأحرف وتخزينها في متغير ، يصبح هذا المتغير مصفوفة لهذه الأحرف والطريقة التي نستخدمها لتقسيم سلسلة لجعلها في مصفوفة هي باستخدام وظيفة SPLIT في vba الذي يقسم السلسلة في سلسلة ذات بعد واحد.
مثل أوراق العمل في VBA أيضًا ، لدينا وظائف للتعامل مع قيم String أو Text. نحن على دراية كبيرة بعمليات السلسلة مثل استخراج الاسم الأول ، والاسم الأخير ، والاسم الأوسط ، وما إلى ذلك. ولكن ماذا عن فكرة تقسيم قيمة السلسلة إلى مصفوفات في VBA؟ نعم ، لقد سمعت أنه صحيح ، يمكننا تقسيم جملة السلسلة إلى مصفوفة باستخدام ترميز VBA وفي هذه المقالة الخاصة ، سنوضح لك كيفية تقسيم السلسلة إلى مصفوفة في Excel VBA.
ما هو تقسيم السلسلة إلى مصفوفة؟
دعني أوضح هذا أولاً ، "String into Array" ليست سوى "أجزاء مختلفة من الجملة أو السلسلة سيتم تقسيمها إلى أجزاء متعددة". على سبيل المثال ، إذا كانت الجملة هي "بنغالور هي عاصمة ولاية كارناتاكا" ، فإن كل كلمة تكون مصفوفة مختلفة.
لذا ، كيفية تقسيم هذه الجملة إلى المصفوفة هو موضوع هذه المقالة.
كيفية تحويل Split String إلى صفيف في Excel VBA؟
لتحويل السلسلة المنقسمة إلى مصفوفة في VBA لدينا وظيفة تسمى "SPLIT". هذه وظيفة VBA تؤدي مهمة تقسيم قيمة السلسلة المتوفرة إلى أجزاء مختلفة بناءً على المحدد المقدم.
على سبيل المثال ، إذا كانت الجملة هي "بنغالور هي عاصمة ولاية كارناتاكا" ، تكون المسافة هي الفاصل بين كل كلمة.
يوجد أدناه بناء جملة الدالة SPLIT.
- القيمة أو التعبير: هذه هي القيمة النصية أو النصية التي نحاول تحويلها إلى المصفوفة عن طريق فصل كل جزء من السلسلة.
- [محدد]: هذا ليس سوى الأشياء المشتركة التي تفصل بين كل كلمة في السلسلة. في جملتنا "بنغالور هي عاصمة ولاية كارناتاكا" كل كلمة مفصولة بحرف فضاء لذلك المحدد لدينا هو الفضاء هنا.
- [الحد]: الحد ليس سوى عدد الأجزاء التي نريدها نتيجة لذلك. على سبيل المثال في الجملة "بنغالور هي عاصمة كارناتاكا" لدينا سبعة أجزاء إذا احتجنا إلى ثلاثة أجزاء فقط ، فسنحصل على الجزء الأول باسم "بنغالور" ، والجزء الثاني كـ "هو" والجزء الثالث كبقية الجملة أي "عاصمة ولاية كارناتاكا".
- [قارن]: لا يتم استخدام هذا بنسبة 99٪ من الوقت ، لذلك دعونا لا نتطرق إلى هذا في هذه المرحلة الزمنية.
مثال 1
حسنًا ، لنرى الآن أمثلة عملية.
الخطوة 1: تحديد متغير VBA للاحتفاظ بقيمة السلسلة.
رمز:
Sub String_To_Array () قيمة StringValue خافتة كنهاية سلسلة فرعية
الخطوة 2: بالنسبة لهذا المتغير ، قم بتعيين سلسلة نصية "Bangalore is the capital city of Karnataka".
رمز:
Sub String_To_Array () Dim StringValue As String StringValue = "بنغالور هي عاصمة كارناتكا" End Sub
الخطوة 3: بعد ذلك ، حدد متغيرًا آخر يمكنه الاحتفاظ بكل جزء من قيمة السلسلة أعلاه. يجب أن نضع في الاعتبار هنا نظرًا لأن الجملة بها أكثر من كلمة واحدة ، فنحن بحاجة إلى تعريف المتغير على أنه "صفيف" ليحتوي على أكثر من قيمة واحدة.
في هذه الحالة ، لدينا 7 كلمات في السلسلة ، لذا حدد المصفوفة على النحو التالي.
رمز:
Sub String_To_Array () Dim StringValue As String StringValue = "بنغالور هي عاصمة كارناتكا" Dim SingleValue () باعتبارها String End Sub
الآن بالنسبة لمتغير الصفيف هذا ، سنستخدم الدالة SPLIT لتقسيم السلسلة إلى مصفوفة في Excel VBA.
رمز:
Sub String_To_Array () Dim StringValue As String StringValue = "بنغالور هي عاصمة ولاية كارناتاكا" Dim SingleValue () As String SingleValue = Split (StringValue، "") End Sub
التعبير هو قيمة السلسلة ، أي أن المتغير يحمل بالفعل قيمة السلسلة ، لذا أدخل اسم المتغير فقط.
المحدد في هذه السلسلة هو حرف المسافة ، لذا قم بتوفير نفس الشيء.
رمز:
Sub String_To_Array () Dim StringValue As String StringValue = "بنغالور هي عاصمة ولاية كارناتاكا" Dim SingleValue () As String SingleValue = Split (StringValue، "") End Sub
اعتبارًا من الآن ، اترك أجزاء أخرى من وظيفة SPLIT.
تقوم وظيفة SPLIT بتقسيم قيمة السلسلة إلى 7 أجزاء ، يتم فصل كل كلمة على حساب المسافة. نظرًا لأننا أعلنا المتغير "SingleValue" كمصفوفة ، يمكننا تعيين جميع القيم السبعة لهذا المتغير.
يمكننا كتابة الكود على النحو التالي.
رمز:
Sub String_To_Array () Dim StringValue As String StringValue = "بنغالور هي عاصمة ولاية كارناتاكا" Dim SingleValue () As String SingleValue = Split (StringValue، "") MsgBox SingleValue (0) End Sub
قم بتشغيل الكود وشاهد ما نحصل عليه في مربع الرسالة.
اعتبارًا من الآن ، يمكننا أن نرى الكلمة الأولى مثل "Bangalore" لإظهار المزيد من الكلمات يمكننا كتابة الكود على النحو التالي.
رمز:
Sub String_To_Array () Dim StringValue As String StringValue = "بنغالور هي عاصمة كارناتاكا" Dim SingleValue () As String SingleValue = Split (StringValue، "") MsgBox SingleValue (0) & vbNewLine & SingleValue (1) & SingleValue (2) & vbNewLine & SingleValue (3) & _vbNewLine & SingleValue (4) & vbNewLine & SingleValue (5) & vbNewLine & SingleValue (6) End Sub
الآن قم بتشغيل الكود وشاهد ما حصلنا عليه في مربع الرسالة.
تم تقسيم كل كلمة إلى مصفوفات.
المثال رقم 2
تخيل الآن حالة تخزين هذه القيم في الخلايا ، أي كل كلمة في خلية منفصلة. لهذا ، نحتاج إلى تضمين حلقة FOR NEXT في VBA.
سيقوم الكود أدناه بإدراج كل كلمة في خلايا منفصلة.
Sub String_To_Array1 () Dim StringValue As String StringValue = "بنغالور هي عاصمة ولاية كارناتاكا" Dim SingleValue () As String SingleValue = Split (StringValue، "") Dim k As Integer For k = 1 To 7 Cells (1، k) .Value = SingleValue (k - 1) Next k End Sub
سيؤدي هذا إلى إدراج كل كلمة كما هو موضح في الصورة أدناه.
أشياء للذكرى
- يتم استخدام المصفوفة والحلقات معًا لجعل الكود ديناميكيًا.
- تتطلب وظيفة SPLIT محددًا مشتركًا يفصل بين كل كلمة في الجملة.
- يبدأ طول الصفيف من صفر وليس من 1.