Vba: كيفية دمج الخلايا بنفس القيم
يمكنك استخدام بناء الجملة التالي في VBA لدمج الخلايا التي لها نفس القيم في نطاق معين:
Sub MergeSameCells()
'turn off display alerts while merging
Application.DisplayAlerts = False
'specify range of cells for merging
Set myRange = Range(" A1:C13 ")
'merge all same cells in range
MergeSame:
For Each cell In myRange
If cell.Value = cell.Offset(1, 0).Value And Not IsEmpty(cell) Then
Range(cell, cell.Offset(1, 0)).Merge
cell.VerticalAlignment = xlCenter
GoTo MergeSame
End If
Next
'turn display alerts back on
Application.DisplayAlerts = True
End Sub
يقوم هذا الماكرو بدمج الخلايا ذات القيم نفسها في النطاق A1:C13 .
يوضح المثال التالي كيفية استخدام بناء الجملة هذا عمليًا.
مثال: دمج الخلايا ذات القيم نفسها في VBA
لنفترض أن لدينا مجموعة البيانات التالية في برنامج Excel والتي تحتوي على معلومات حول النقاط التي سجلها العديد من لاعبي كرة السلة:
لنفترض أننا نريد دمج الخلايا التي لها نفس القيم في صفوف متتالية.
يمكننا إنشاء الماكرو التالي للقيام بذلك:
Sub MergeSameCells()
'turn off display alerts while merging
Application.DisplayAlerts = False
'specify range of cells for merging
Set myRange = Range(" A1:C13 ")
'merge all same cells in range
MergeSame:
For Each cell In myRange
If cell.Value = cell.Offset(1, 0).Value And Not IsEmpty(cell) Then
Range(cell, cell.Offset(1, 0)).Merge
cell.VerticalAlignment = xlCenter
GoTo MergeSame
End If
Next
'turn display alerts back on
Application.DisplayAlerts = True
End Sub
عندما نقوم بتشغيل هذا الماكرو، نحصل على الإخراج التالي:
لاحظ أنه تم دمج كل خلية تحتوي على نفس اسم المؤتمر واسم الفريق .
لاحظ أننا استخدمنا عبارة cell.VerticalAlignment = xlCenter لتحديد ضرورة توسيط النص عموديًا في الخلايا المدمجة.
مصادر إضافية
تشرح البرامج التعليمية التالية كيفية تنفيذ المهام الشائعة الأخرى في VBA:
فبا: كيفية حساب عدد الأعمدة المستخدمة
فبا: كيفية تغيير ارتفاع الصف
فبا: كيفية تغيير عرض العمود