كيفية ضبط ارتفاع الصف تلقائيًا للخلايا المدمجة في Excel؟
في Excel، يمكننا بسرعة ضبط ارتفاع الصف ليتناسب مع محتويات الخلية باستخدام ميزة تلقائي ضبط ارتفاع الصف، لكن هذه الوظيفة تتجاهل تمامًا الخلايا المدمجة. بمعنى آخر، لا يمكنك تطبيق ميزة تلقائي ضبط ارتفاع الصف لتغيير ارتفاع صفوف الخلايا المدمجة، بل تحتاج إلى ضبط ارتفاع الصف للخلايا المدمجة يدويًا واحدًا تلو الآخر. في هذه المقالة، سأقدم بعض الطرق السريعة لحل هذه المشكلة.
ضبط ارتفاع الصف تلقائيًا للخلايا المدمجة باستخدام كود VBA
ضبط ارتفاع الصف تلقائيًا للخلايا المدمجة باستخدام كود VBA
لنفترض أن لدي ورقة عمل تحتوي على بعض الخلايا المدمجة كما هو موضح في لقطة الشاشة التالية، والآن أحتاج إلى تغيير ارتفاع صف الخلية لعرض كل المحتويات، قد يساعدك الكود التالي من VBA في ضبط ارتفاع الصف تلقائيًا للعديد من الخلايا المدمجة، يرجى القيام بما يلي:
1. اضغط مع الاستمرار على مفاتيح ALT + F11، وسيفتح نافذة Microsoft Visual Basic for Applications.
2. انقر فوق إدراج > وحدة، والصق الكود التالي في نافذة الوحدة.
كود VBA: ضبط ارتفاع الصف تلقائيًا للعديد من الخلايا المدمجةOption Explicit
Public Sub AutoFitAll()
Call AutoFitMergedCells(Range("a1:b2"))
Call AutoFitMergedCells(Range("c4:d6"))
Call AutoFitMergedCells(Range("e1:e3"))
End Sub
Public Sub AutoFitMergedCells(oRange As Range)
Dim tHeight As Integer
Dim iPtr As Integer
Dim oldWidth As Single
Dim oldZZWidth As Single
Dim newWidth As Single
Dim newHeight As Single
With Sheets("Sheet4")
oldWidth = 0
For iPtr = 1 To oRange.Columns.Count
oldWidth = oldWidth + .Cells(1, oRange.Column + iPtr - 1).ColumnWidth
Next iPtr
oldWidth = .Cells(1, oRange.Column).ColumnWidth + .Cells(1, oRange.Column + 1).ColumnWidth
oRange.MergeCells = False
newWidth = Len(.Cells(oRange.Row, oRange.Column).Value)
oldZZWidth = .Range("ZZ1").ColumnWidth
.Range("ZZ1") = Left(.Cells(oRange.Row, oRange.Column).Value, newWidth)
.Range("ZZ1").WrapText = True
.Columns("ZZ").ColumnWidth = oldWidth
.Rows("1").EntireRow.AutoFit
newHeight = .Rows("1").RowHeight / oRange.Rows.Count
.Rows(CStr(oRange.Row) & ":" & CStr(oRange.Row + oRange.Rows.Count - 1)).RowHeight = newHeight
oRange.MergeCells = True
oRange.WrapText = True
.Range("ZZ1").ClearContents
.Range("ZZ1").ColumnWidth = oldZZWidth
End With
End Sub
ملاحظات:
(1.) في الكود أعلاه، يمكنك إضافة نطاقات جديدة عن طريق نسخ النص Call AutoFitMergedCells(Range("a1:b2")) عدة مرات كما تريد، وتغيير نطاقات الخلايا المدمجة حسب الحاجة.
(2.) ويجب عليك تغيير اسم ورقة العمل الحالية Sheet4 إلى اسم الورقة التي تستخدمها.
3. ثم اضغط على مفتاح F5 لتشغيل هذا الكود، والآن يمكنك رؤية أن جميع الخلايا المدمجة تم ضبطها تلقائيًا لتناسب محتوياتها، انظر لقطة الشاشة:
المقالة ذات الصلة:
كيفية ضبط عرض العمود تلقائيًا في Excel؟
أفضل أدوات الإنتاجية لمكتب العمل
عزز مهاراتك في Excel مع Kutools لـ Excel، واختبر الكفاءة كما لم يحدث من قبل. Kutools لـ Excel يقدم أكثر من300 ميزة متقدمة لزيادة الإنتاجية وتوفير وقت الحفظ. انقر هنا للحصول على الميزة التي تحتاجها أكثر...
Office Tab يقدم واجهة التبويب لـ Office، ويجعل عملك أسهل بكثير
- تمكين تحرير وقراءة المستندات عبر التبويبات في Word وExcel وPowerPoint.
- افتح وأنشئ عدة مستندات في تبويبات جديدة ضمن نفس النافذة، بدلاً من فتحها في نوافذ منفصلة.
- يزيد إنتاجيتك بنسبة50%، ويقلل مئات النقرات بالماوس يومياً!