Skip to main content

Kutools for Office — مجموعة واحدة. خمسة أدوات. أنجز المزيد.

كيفية نقل العناصر بسرعة بين صندوقي قائمة في Excel؟

Author Sun Last modified

هل سبق لك أن حاولت نقل العناصر من صندوق قائمة إلى صندوق قائمة آخر كما هو موضح في لقطة الشاشة أدناه؟ هنا سأتحدث عن هذه العملية في Excel.

a screenshot showing the listboxes before moving items a screenshot of an arrow a screenshot showing the listboxes after moving items

نقل العناصر بين صناديق القائمة


نقل العناصر بين صناديق القائمة

لا توجد وظيفة مضمنة يمكنها مساعدتك على إنجاز المهمة، ولكن لدي كود VBA يمكنه المساعدة.

1. أولاً، تحتاج إلى إنشاء قائمة من البيانات التي سيتم عرضها كعناصر في صناديق القائمة في ورقة عمل جديدة تسمى Admin_Lists.

a screenshot of the source data

2. ثم حدد هذه البيانات واذهب إلى مربع الاسم لتسميها ItemList. انظر لقطة الشاشة:

a screenshot of naming the source data in the Name box

3. ثم في ورقة العمل التي تحتوي على صندوقي القائمة، اضغط على Developer > Insert > List Box(Active X Control)، وارسم صندوقي قائمة. انظر لقطة الشاشة:

a screenshot of selecting the List Box control under the Developer tab a screenshot of the right arrow a screenshot showing two created list boxes

إذا كان شريط Developer مخفيًا في الشريط الخاص بك، كيف تظهر/تعرض شريط المطور في شريط Excel 2007/2010/2013؟ هذه المقالة ستوضح لك كيفية إظهاره.

4. ثم اضغط على Developer > Insert > Command Button(Active X Control)، وارسم أربعة أزرار بين صندوقي القائمة. انظر لقطة الشاشة:

a screenshot of selecting command button control a screenshot of a right arrow 1 a screenshot showing the created command buttons

الآن قم بإعادة تسمية الأربعة أزرار بأسماء جديدة.

5. حدد الزر الأول، واضغط على Properties، وفي لوحة الخصائص، أعطه اسم BTN_moveAllRight، واكتب >> في مربع النص بجانب Caption. انظر لقطة الشاشة:

a screenshot showing how to changing the properties of the command button

6. كرر الخطوة 5 لإعادة تسمية الثلاثة أزرار الأخيرة بالأسماء التالية، واكتب أيضًا الأسهم المختلفة في العناوين. انظر لقطة الشاشة:

BTN_MoveSelectedRight

BTN_moveAllLeft

BTN_MoveSelectedLeft

a screenshot of the second command button after changing the properties a screenshot of the third command button after changing the properties a screenshot of the fourth command button after changing the properties

7. انقر بزر الماوس الأيمن على اسم الورقة التي تحتوي على صناديق القائمة وأزرار الأوامر، وحدد View Code من قائمة السياق. انظر لقطة الشاشة:

a screenshot of opening the VBA code editor

8. انسخ والصق الكود التالي في نافذة Module ثم احفظ الكود وأغلق نافذة Microsoft Visual Basic for Applications. انظر لقطة الشاشة:

VBA: نقل العناصر بين صندوقي قائمة

Private Sub Worksheet_Activate()
'UpdatebyExtendoffice20171117
    Dim xCell As Range
    Dim xRg As Range
    Set xRg = Sheets("Admin_Lists").Range("ItemList")
    Me.ListBox1.Clear
    Me.ListBox2.Clear
    With Me.ListBox1
        .LinkedCell = ""
        .ListFillRange = ""
        For Each xCell In xRg
            If xCell <> "" Then
                .AddItem xCell.Value
            End If
        Next xCell
    End With
    Me.ListBox1.MultiSelect = fmMultiSelectMulti
    Me.ListBox2.MultiSelect = fmMultiSelectMulti
End Sub

Private Sub BTN_MoveSelectedLeft_Click()
    Call moveSigle(Me.ListBox2, Me.ListBox1)
End Sub

Private Sub BTN_MoveSelectedRight_Click()
    Call moveSigle(Me.ListBox1, Me.ListBox2)
End Sub

Private Sub BTN_moveAllLeft_Click()
    Call moveAll(Me.ListBox2, Me.ListBox1)
End Sub

Private Sub BTN_moveAllRight_Click()
    Call moveAll(Me.ListBox1, Me.ListBox2)
End Sub

Sub moveAll(xListBox1 As Object, xListBox2 As Object)
    Dim I As Long
    For I = 0 To xListBox1.ListCount - 1
        xListBox2.AddItem xListBox1.List(I)
    Next I
    xListBox1.Clear
End Sub

Sub moveSigle(xListBox1 As Object, xListBox2 As Object)
    Dim I As Long
    For I = 0 To xListBox1.ListCount - 1
        If I = xListBox1.ListCount Then Exit Sub
        If xListBox1.Selected(I) = True Then
            xListBox2.AddItem xListBox1.List(I)
            xListBox1.RemoveItem I
            I = I - 1
        End If
    Next
End Sub

a screenshot showing how to use the VBA code

9. ثم انتقل إلى ورقة أخرى ثم عد إلى الورقة التي تحتوي على صناديق القائمة، الآن يمكنك رؤية أن بيانات القائمة قد تم إدراجها في أول صندوق قائمة. واضغط على أزرار الأوامر لنقل العناصر بين صندوقي القائمة.

a screenshot showing the source data in one list box after running the VBA code

نقل التحديد

a screenshot of moving items from one list box to another one by one a screenshot of the arrow a screenshot showing two items have been moved to the right list box

نقل الكل

a screenshot of marking which command button can be used to move all items from one list to another at the same time a screenshot of arrow 2 a screenshot showing all items are moved from one list box to another at the same time

أفضل أدوات الإنتاجية لمكتب العمل

🤖 Kutools AI Aide: أحدث ثورة في تحليل البيانات اعتمادًا على: التنفيذ الذكي |  توليد الأكواد |  إنشاء الصيغ المخصصة |  تحليل البيانات وتوليد الرسوم البيانية |  استخدام Kutools Functions...
ميزات شائعة: البحث، تمييز أو وضع علامة على المكررات | حذف الصفوف الفارغة | دمج الأعمدة أو الخلايا بدون فقدان البيانات | تقريب بدون الصيغة...
بحث متقدم: بحث بمعايير متعددة VLookup | بحث بقيم متعددة VLookup | بحث في عدة ورقات VLookup | مطابقة غامضة...
قائمة منسدلة متقدمة: إنشاء قائمة منسدلة بسرعة | قائمة منسدلة معتمدة | قائمة منسدلة متعددة الاختيارات...
مدير الأعمدة: إضافة عدد محدد من الأعمدة | نقل الأعمدة | تبديل حالة إظهار الأعمدة المخفية | مقارنة النطاقات والأعمدة...
ميزات مميزة: التركيز على الشبكة | عرض التصميم | شريط الصيغ المحسن | مدير أدوات المصنف وورقة العمل | مكتبة النص التلقائي | منتقي التاريخ | دمج البيانات | تشفير/فك تشفير الخلايا | إرسال البريد الإلكتروني حسب الجدول | مرشح متقدم | تصفية خاصة (تصفية الخلايا التي تحتوي على خط عريض/مائل/يتوسطه خط...)...
أفضل15 مجموعة أدوات:12 أداة نصية (إضافة نص، حذف الأحرف المحددة، ...) | أكثر من50 نوع رسم بياني (مخطط جانت، ...) | أكثر من40 صيغة عملية (حساب العمر بناءً على تاريخ الميلاد، ...) |19 أداة إدراج (إدراج رمز الاستجابة السريعة، إدراج صورة من المسار، ...) |12 أداة تحويل (تحويل إلى كلمات، تحويل العملة، ...) |7 أدوات دمج وتقسيم (دمج متقدم للصفوف، تقسيم الخلايا، ...) | ... والمزيد
استخدم Kutools بلغتك المفضلة – يدعم الإنجليزية، الإسبانية، الألمانية، الفرنسية، الصينية، وأكثر من40 لغة أخرى!

عزز مهاراتك في Excel باستخدام Kutools لـ Excel، واختبر كفاءة غير مسبوقة. Kutools لـ Excel يوفر أكثر من300 ميزة متقدمة لزيادة الإنتاجية وتوفير وقت الحفظ. انقر هنا للحصول على الميزة الأكثر أهمية بالنسبة لك...


Office Tab يجلب واجهة التبويب إلى Office ويجعل عملك أسهل بكثير

  • تفعيل تحرير وقراءة عبر التبويبات في Word، Excel، PowerPoint، Publisher، Access، Visio وProject.
  • افتح وأنشئ عدة مستندات في تبويبات جديدة في نفس النافذة، بدلاً من نوافذ مستقلة.
  • يزيد إنتاجيتك بنسبة50%، ويقلل مئات النقرات اليومية من الفأرة!

جميع إضافات Kutools. مثبت واحد

حزمة Kutools for Office تجمع بين إضافات Excel وWord وOutlook وPowerPoint إضافة إلى Office Tab Pro، وهي مثالية للفرق التي تعمل عبر تطبيقات Office.

Excel Word Outlook Tabs PowerPoint
  • حزمة الكل في واحد — إضافات Excel وWord وOutlook وPowerPoint + Office Tab Pro
  • مثبّت واحد، ترخيص واحد — إعداد في دقائق (جاهز لـ MSI)
  • الأداء الأفضل معًا — إنتاجية مُبسطة عبر تطبيقات Office
  • تجربة كاملة لمدة30 يومًا — بدون تسجيل، بدون بطاقة ائتمان
  • قيمة رائعة — وفر مقارنة بشراء الإضافات بشكل منفرد