سؤال كيفية جعل ميزة "احتواء تلقائي لارتفاع الصف" في Excel ملائمة تلقائيًا لارتفاع الصف؟


لكل جيل من Excel يمكنني تذكر (بما في ذلك 2010 ، الذي أستخدمه الآن) ، تفشل أحيانًا ميزات "Auto Size Row" في Excel في الحجم التلقائي لصف ما عندما تحتوي الخلية على نص ملتف. عندما تعمل بشكل صحيح ، يتم كشف كل النص وليس هناك مساحة إضافية أسفل السطر الأخير من النص. عندما تفشل ، فإنها تضيف مسافة إضافية أسفل النص. ولجعل الأمور أكثر سوءًا ، فإن ما تراه ليس دائمًا ما تحصل عليه ، أي أن النص الذي يظهر بخير على الشاشة ينقطع عند طباعته. يمكنك أيضًا الحصول على حجم مختلف حسب ما إذا كنت تكبير / تصغير أو بالحجم الفعلي.

حالة اختبار بسيطة:

لماذا توجد فجوة في سطر واحد بعد النص الموجود في الخلية A1 ولكن ليس في A2؟

(لإعادة إنتاج: تعيين عرض العمود A إلى 17.14 (125 بكسل) ، التفاف النص ، ومحاذاة الخلية أعلى.)

(قمت بالتحقق مرة أخرى من أني قمت بتطبيق Auto Fit Row Height على كلا الصفوف. مستوى التكبير هو 100٪.)

Auto Fit fails for the first row, succeeds for the second

هل هناك أي علاج معروف لهذا دون اللجوء إلى تعديل ارتفاع الصفوف يدويًا (وهو أمر غير عملي لأكثر من عدد قليل من الصفوف)؟


84
2018-02-14 21:16


الأصل


في حال أراد أي شخص إعادة إنتاج المثال في سؤالي ، يكون عرض العمود A 17.15 (125 بكسل). - devuxer
يبدو أن الخطأ يعتمد على حجم الخط وحجمه - Raystafarian
Raystafarian ، لا يبدو أن العمل مع التفاف النص قيد التشغيل. - devuxer
حاولت إعادة التوثيق التلقائي للأعمدة ، التي وسعت عمودًا واحدًا ، ثم أعدت توسيم الصفوف. انخفض هذا العدد من 73 صفحة إلى 64 صفحة ولكن لا يزال هناك الكثير من الخطوط الفارغة في أسفل معظم الصفوف. لدي صفوف محاذاة أعلى. إن تغيير حجم الصفوف يدويًا يجعلها تبدو جيدة عندما أعمل على المستند ، ولكن ليس في المعاينة أو في الطباعة.
نعم ، مزعج جدا! انظر أيضًا هذا في Excel 2007 على الأقل. لا تتذكر حدوث ذلك في Excel 2003. - abstrask


الأجوبة:


طريقة وجدت للتو (توسيع وظيفة السابقة قليلا):

  • حدد الورقة كاملة.
  • تغيير حجم العمود على نطاق أوسع قليلا (لأن يتم تحديد ورقة كاملة ، وسوف تحصل على جميع الأعمدة على نطاق أوسع)
  • انقر نقرًا مزدوجًا فوق فاصل الصف - سيتم تجهيز ارتفاع الصف تلقائيًا
  • انقر نقرًا مزدوجًا فوق فاصل الأعمدة - سيتم تجهيز عرض الأعمدة تلقائيًا

فويلا!


97
2017-12-05 10:49



هذا حقا يبدو أن العمل. المنطقة الرمادية الواحدة هي المكان الذي تقول فيه "أوسع قليلاً". أحد الأمثلة التي جربتها لم تنجح إلا إذا قمت بتوسيع العمود إلى حد كبير ، لكنني في النهاية نجحت في العمل. شكر! - devuxer
قمت باختيار الورقة بأكملها ثم نقرت مرتين على فاصل الصف بين صفين عشوائين والوثيقة بأكملها أعادت تعديل ارتفاع الصفوف. - Keith Sirmons
لاحظ أن AutoFit لا يعمل لأي خلايا مدمجة: support.microsoft.com/kb/212010 - freb
رائع! هل أي شخص يعرف هذا ممكن في السيناريو VBA؟ - Andreas Furster
ألا تعمل هذه الطريقة فقط إذا كانت جميع الأعمدة هي نفس العرض؟ عندما أعدت تغيير حجم أحد الأعمدة ، أصبحت جميع الأعمدة الأخرى بنفس العرض (في Excel 2010). - Ed Greaves


ليس WYSIWYG في Excel هو الأفضل. في صورتك ، "قطة". بالكاد تتسلل إلى الخط الخامس. إذا قمت بتقليل نسبة التكبير إلى أي شيء أقل من 100٪ (99٪ على سبيل المثال.) ثم "cat". الآن ملفوفة إلى السطر السادس. أعتقد أن Excel يحاول الملاءمة التلقائية بطريقة تضمن أن كل شيء مرئي دائمًا بغض النظر عن مستوى التكبير / التصغير.

هذه ليست المشكلة الوحيدة التي ستواجهها مع AutoFit. بالإضافة إلى ذلك ، فإن الطريقة التي تتم بها طباعة خلية ملفوفة بالكلمة لن تتطابق دائمًا مع ما تراه على الشاشة. خذ المثال الخاص بك وقم بتغيير الخط إلى Courier مع ترك الحجم في 11.

Changed font to Courier

كما ترى ، يبدو أن الخلية A1 تعطى 1.5 أسطر إضافية. انظر الآن إلى معاينة الطباعة ، "قطة". مخفي بالكامل.

print preview of same file

في تجربتي ، لدى Excel هذه المشكلة مع بعض الخطوط وأحجام الخطوط أكثر من غيرها. التوصيل هو أسوأ من ساعي جديد، حجم 11 هو عموما أسوأ من 10 أو 12. (لماذا اختاروا حجم 11 كإعداد افتراضي جديد ، ليس لدي أي فكرة.)


13
2018-02-15 19:07



لذلك ... أساسا كسروا ذلك. كنت تفسير معقول على الرغم من ذلك ، لكنه حقا البق لي ، أنه من هذا القبيل: - / - abstrask


كتبت للتو ماكرو صغير لهذا الغرض. عيّنته مفتاح اختصار (Ctrl-Shift-J) ويعمل مثل سحر بالنسبة لي.

Sub ArrangeTable()
'set proper column width and row height for the current region
    With Selection.CurrentRegion
        .Columns.ColumnWidth = 200
        .Columns.EntireColumn.AutoFit
        .Rows.EntireRow.AutoFit
    End With
End Sub

لجعل هذا متاحًا بشكل دائم ، يمكنك بسهولة إجراء تحميل إضافي تلقائيًا:

  • إنشاء وحدة نمطية في مصنف فارغ جديد ولصق الرمز ،
  • قم بتعيينه مفتاح الاختصار الذي تريده ،
  • ثم Save As، Add-in، إلى المجلد %appdata%\Microsoft\Excel\XLSTART
    بهذه الطريقة سيتم تحميله بشكل غير مرئي في كل مرة تبدأ فيها تشغيل برنامج Excel.

2
2018-01-22 08:51



أو يمكنك القيام بذلك: Private Subheetheet_Change (ByVal Target As Range) ArrangeTable End Sub - kurdtpage


في بعض الحالات ، قد تكون مشكلة مساحة إضافية في بعض الصفوف بعد استدعاء "AutoFit Row Height" هي أن عمودًا مخفيًا قد لف النص في هذه الصفوف.


0
2018-06-21 14:33



وهو ليس هذا هو الحال في هذا السؤال. - Dmitry Grigoryev


أنا أيضا قد تحملت هذا الخطأ الصغيرة ولكن تشتيت للغاية لسنوات عديدة. ليس لدي أي عمل حول باستثناء تافه مع عرض الصف للخلية مع معظم النص فيه ، وفي نهاية المطاف سوف تلين البرنامج وتظهر النص بشكل صحيح.


0
2018-01-01 11:17



تافه مع عرض الصف ليس حلا استنساخيا. - Dmitry Grigoryev


هناك حل سهل:

1) حدد جميع الصفوف التي تريد تنسيقها تلقائيًا (إذا كانت عبارة عن كتلة كبيرة ، فانقر على الأول ثم اضغط على Shift + End و Shift + Down)

2) انقر بزر الماوس الأيمن على التحديد ، تنسيق الخلايا ، علامة تبويب المحاذاة ، قم بإلغاء تحديد التفاف النص.

أتمنى أن يساعدك هذا ؛)


0
2018-02-26 11:57



إذا قمت بإلغاء Wrap text، ليس هناك أي نقطة في ضبط ارتفاع الصف تلقائيًا ، لأن جميع الصفوف ستكون بنفس الحجم. - Dmitry Grigoryev
لقد أزعجتني هذه المشكلة لسنوات. تبديل تبديل التفاف لصف مزعج استعادة وظيفة autofit. - Mitch


لدي Excel 2010. لقد وجدت أن هذه المشكلة قد حدثت لي عندما لم يكن إعداد Zoom في 100٪. طالما أنني في حدود 100٪ ، لا أحصل على النص مع AutoFit للأعمدة والصفوف


0
2018-04-08 16:10



في المثال الذي استخدمته لسؤالي ، كنت في التكبير = 100٪ طوال الوقت. حدثت المشكلة بغض النظر. - devuxer


هناك المادة كيلو بايت حول هذا الأمر الذي "يقترح" (غير متناقض بشكل غير مقبول ، في أزياء Microsoft الكلاسيكية) أنه إذا قمت بتعيين ارتفاع صف من أي وقت مضى ، فإن التحويل التلقائي التلقائي للارتفاع يتم بشكل دائم لهذا الصف من ورقة العمل. الصفوف التي لم تلمس مستوى ارتفاعها ، ستتم ترجمة تلقائية على الرغم من ذلك.

بينما يمكنك إعادة ضبط عرض الأعمدة مع إعداد "العرض القياسي" في عام 2003 (تصميم مجنون -2007: التغيير إلى "العرض الافتراضي") ، لكنهم نسوا (مرة أخرى) (ومرة أخرى) لوضع ذلك في صفوف. لذلك يبدو أن الاستمرارية لا يمكن تجنبها. وهذا يعني ، إذا كان لديك ارتفاع افتراضي يبلغ 15 ، وقمت بإنشاء ورقة وتعيين جميع الارتفاعات إلى 12 ، فقد قمت فقط بالتخلي التلقائي التلقائي.


0
2018-05-01 19:58



لا يمكنني تكرار هذا السلوك. بمجرد أن أفعل "Auto Fit Row Height" ، يتم استبدال أي إعداد ارتفاع يدوي لهذا الصف على الفور بالارتفاع الملائم تلقائيًا. تكمن المشكلة ببساطة في أن ارتفاع الملاءمة التلقائي غالبًا ما يكون خاطئًا. - devuxer
يمكنني تكرار هذا السلوك. هذا بالضبط كما هو الحال بالنسبة لي. - Peter Nore


في بعض الأحيان هناك طريقة نووية لإصلاح سوء التصرف التلقائي.

ما أقوم به هو نسخ النص من كل خلية ولصق البيانات في المفكرة ، ثم حذف الصف. ثم أنسخ صفًا فارغًا وأدخله على الفور ولكن له نفس التنسيق وسلوك جيد كالصف الذي تم حذفه. (يجب نسخ وإدراج الصف بأكمله باستخدام أزرار الصف الأيسر.)

بمجرد الانتهاء من ذلك ، يجب عليك العودة وإدراج النص من المفكرة في كل خلية. (استعمال F2 أو قم بتنشيط وضع التحرير لكل خلية قبل إدخال النص.) إنه ألم ، لذا فهو الملاذ الأخير ، خاصة بالنسبة لأوراق العمل ذات النسب العريضة ginormeously.

هذا هو الحل الوحيد في بعض الأحيان ، حيث أن المشكلة تكمن في البرنامج نفسه.


0
2017-07-05 17:03



نسخ النص من كل خلية - يبدو أن هذا يتطلب الكثير من العمل مثل التنسيق اليدوي. - Dmitry Grigoryev


لم أقم باختبار هذا بدقة ولكن كان يعمل من أجلي. وبشكل أساسي ، سيقوم تلقائيًا بضبط كل الأوراق ثم الرجوع إليها مرة أخرى وتعيين عرض العمود إلى العرض الأصلي ، ما لم يتم تمديده بواسطة الضبط التلقائي. لم يكن عندي سوى 10 أعمدة ولم أكن أكثر من 1000 صف لذا اضبط الشفرة حسب الحاجة.

Sub ResizeCells()
    Dim sheetCounter As Integer
    Dim rowCounter As Integer
    Dim colCounter As Integer
    Dim totalWidth As Double
    Dim oldColWidths(1 To 10) As Double

    For sheetCounter = 1 To ThisWorkbook.Sheets.Count
        ActiveWorkbook.Worksheets(sheetCounter).Select
        totalWidth = 0

        ' Extend the columns out to 200
        For colCounter = 1 To 10
            oldColWidths(colCounter) = Cells(1, colCounter).ColumnWidth
            totalWidth = totalWidth + oldColWidths(colCounter)
            Cells(1, colCounter).ColumnWidth = 200
        Next

        For rowCounter = 4 To 1000
            If Cells(rowCounter, 1).Value <> "" Or Cells(rowCounter, 2).Value <> "" Or Cells(rowCounter, 3).Value <> "" Then
                Rows(rowCounter & ":" & rowCounter).EntireRow.AutoFit
            End If
        Next

        ' do autofit
        For colCounter = 1 To 10
            Cells(1, colCounter).EntireColumn.AutoFit
        Next

        ' reset to original values if current width is less than the original width.
        For colCounter = 1 To 10
            If Cells(1, colCounter).ColumnWidth < oldColWidths(colCounter) + 0.25 Then
                Cells(1, colCounter).ColumnWidth = oldColWidths(colCounter)
            End If
        Next
    Next
End Sub

0
2018-01-08 19:14



كيف يحل علة التسوية الذاتية؟ أنت تناسب الصفوف تلقائيًا ، ثم أعمدة تلقائية ، ثم resotre عرض الأعمدة الأصلي. لماذا ينتهي الأمر مع ارتفاع الصف المناسب المناسب؟ على فكرة، totalWidth عاطل عن العمل. - Ant_222
إنها لا تعمل بشكل كامل بالنسبة لي ، لأنك تستعيد العرض فقط من تلك colunns التي أصبحت أضيق. لذلك لا تحتفظ الخوارزمية بعرض العمود. - Ant_222