كيفية استخدام vba لتسلسل السلاسل؟
لربط سلسلتين باستخدام التعليمات البرمجية لـ VBA، يجب عليك استخدام علامة الضم. يمكنك استخدام علامة العطف بين سلسلتين لدمجهما، ثم تعيين هذه القيمة الجديدة لخلية أو متغير أو مربع رسالة. وبالمثل، يمكنك أيضًا ربط أكثر من قيمتين.
وسنرى لاحقا مثالا بسيطا لفهم ذلك.
خطوات استخدام VBA للتسلسل
- أدخل أولاً السلسلة الأولى باستخدام علامات الاقتباس المزدوجة.
- بعد ذلك، اكتب علامة الضم.
- بعد ذلك، أدخل النص الثاني باستخدام علامات الاقتباس المزدوجة.
- في النهاية، قم بتعيين هذه القيمة لخلية أو متغير، أو استخدم مربع رسالة لرؤيتها.
Sub vba_concatenate() Range("A1") = "Mike" & "Ross" End Sub
قم بالتسلسل باستخدام محدد
يمكنك أيضًا استخدام الفاصل بين سلسلتين عن طريق إضافة علامة العطف الثالثة. خذ بعين الاعتبار التعليمة البرمجية التالية.
Range("A1") = "Mike" & "-" & "Ross"
في الكود أعلاه، استخدمت محددًا في سلسلتين وقمت بضمهما باستخدام علامات العطف فقط. لذا، في الأساس، عندما تحتاج إلى تضمين شيء ما، فإنك تحتاج إلى استخدام علامة العطف بداخله.
تسلسل باستخدام المتغيرات
يمكنك أيضًا تخزين القيم في المتغيرات ثم ربط قيم هذين المتغيرين. خذ بعين الاعتبار التعليمة البرمجية التالية.
في الكود أعلاه لديك متغيرات تم تعريفها كمتغيرات ثم قمت بتعيين قيم لهذه المتغيرات. وفي النهاية، استخدمنا علامة الضم لدمج المتغيرات الثلاثة ثم قمنا بتعيين النتيجة للخلية A1.
قم بتسلسل نطاق باستخدام VBA
يمكنك أيضًا ربط القيم من مجموعة من الخلايا باستخدام VBA. خذ بعين الاعتبار الماكرو التالي.
Sub vba_concatenate() Dim rng As Range Dim i As String Dim SourceRange As Range Set SourceRange = Range("A1:A10") For Each rng In SourceRange i = i & rng & " " Next rng Range("B1").Value = Trim(i) End Sub
في الكود أعلاه، استخدمت FOR NEXT (للحلقات) للتكرار عبر النطاق الذي تريد ربطه.
لذلك ينتقل إلى كل خلية في النطاق (A1:A10) ويخزن تلك القيمة في المتغير I ويستخدم علامة الضم لتسلسل قيمة في كل تكرار. في النهاية، اضبط القناة المدمجة على النطاق B1.
ويقوم الكود التالي بتسلسل قيم النطاق المحدد. كل ما عليك فعله هو تحديد نطاق ثم تشغيل الكود.
Dim rng As Range Dim i As String For Each rng In Selection i = i & rng & " " Next rng Range("B1").Value = Trim(i)
قم بتوصيل عمود أو صف بأكمله
إذا كنت تريد وصل عمود أو صف بأكمله، فمن الأفضل في هذه الحالة عدم استخدام طريقة الحلقة. يمكنك استخدام وظيفة ورقة العمل “TextJoin” التي يمكنها ضم صف أو عمود بأكمله (ضع في اعتبارك الكود التالي).
'join values from column A. Dim myRange As Range Dim myString As String Range("B1") = WorksheetFunction.TextJoin(" ", True, Range("A:A")) 'join values from row 1. Dim myRange As Range Dim myString As String Range("B1") = WorksheetFunction.TextJoin(" ", True, Range("1:1"))