Wie wird die Zeilenhöhe in Excel automatisch angepasst?


88

Für jede Excel-Generation, an die ich mich erinnern kann (einschließlich 2010, die ich jetzt verwende), können die Funktionen von Excel zum automatischen Anpassen der Zeilengröße manchmal keine automatische Größe für eine Zeile festlegen, wenn die Zelle umbrochenen Text enthält. Wenn es ordnungsgemäß funktioniert, wird der gesamte Text angezeigt, und unter der letzten Textzeile befindet sich kein zusätzlicher Leerraum. Wenn dies fehlschlägt, wird zusätzlicher Platz unter dem Text hinzugefügt. Schlimmer noch: Was Sie sehen, ist nicht immer das, was Sie erhalten, dh Text, der auf dem Bildschirm als in Ordnung erschien, wird beim Drucken abgeschnitten. Sie erhalten auch unterschiedliche Größen, je nachdem, ob Sie vergrößert oder verkleinert sind oder die tatsächliche Größe haben.

Einfacher Testfall:

Warum gibt es eine einzeilige Lücke nach dem Text in Zelle A1, aber nicht in A2?

(So ​​reproduzieren Sie: Stellen Sie die Breite von Spalte A auf 17,14 (125 Pixel), den Zeilenumbruch und die Zellenausrichtung oben ein.)

(Ich habe zweimal überprüft, ob ich die Zeilenhöhe automatisch an beide Zeilen angepasst habe. Die Zoomstufe beträgt 100%.)

Die automatische Anpassung schlägt für die erste Zeile fehl, für die zweite Zeile ist sie erfolgreich

Gibt es dafür eine bekannte Abhilfe, ohne die Zeilenhöhen manuell einstellen zu müssen (was für mehr als eine Handvoll Zeilen nicht praktikabel ist)?


Falls jemand das Beispiel in meiner Frage reproduzieren möchte, beträgt die Breite der Spalte A 17,15 (125 Pixel).
Devuxer

1
Bug scheint abhängig von Schriftart und Schriftgröße
Raystafarian

1
@Raystafarian, scheint mit aktiviertem Wrap Text nicht zu funktionieren.
Devuxer

1
Ich habe versucht, die Spalten automatisch anzupassen, wodurch eine Spalte verbreitert wurde, und dann die Zeilen automatisch anzupassen. Das hat es von 73 auf 64 Seiten gebracht, aber immer noch viele leere Zeilen am unteren Rand der meisten Zeilen. Ich habe die Zeilen oben ausgerichtet. Wenn Sie die Größe der Zeilen manuell ändern, wird das Ergebnis in Ordnung angezeigt, wenn ich am Dokument arbeite, jedoch nicht in der Vorschau oder im Druck.

1
Ja, so nervig! Auch dies zumindest in Excel 2007 gesehen. Erinnern Sie sich nicht, es jemals in Excel 2003 gesehen zu haben.
abstrask

Antworten:


105

Eine Methode, die ich gerade gefunden habe (Erweiterung des vorherigen Beitrags ein wenig):

  • Wählen Sie das gesamte Blatt aus.
  • Ändere die Größe einer Spalte etwas weiter (da das gesamte Blatt ausgewählt ist, werden alle Spalten breiter)
  • Doppelklicken Sie auf einen Zeilentrenner - die Zeilenhöhe wird automatisch angepasst
  • Doppelklicken Sie auf ein Spaltentrennzeichen - die Spaltenbreiten werden automatisch angepasst

Voila!


2
Das scheint wirklich zu funktionieren. In der einen Grauzone sagen Sie "etwas breiter". Eines der Beispiele, die ich ausprobiert habe, hat nicht funktioniert, es sei denn, ich habe die Säule ein gutes Stück gedehnt, aber ich habe sie schließlich zum Laufen gebracht. Vielen Dank!
Devuxer

5
Ich habe das gesamte Blatt ausgewählt und dann auf den Zeilentrenner zwischen zwei zufälligen Zeilen doppelgeklickt und das gesamte Dokument hat die Zeilenhöhen neu angepasst.
Keith Sirmons

6
Beachten Sie, dass AutoFit für alle zusammengeführten Zellen nicht funktioniert: support.microsoft.com/kb/212010
freb

Funktioniert diese Methode nicht nur, wenn alle Spalten die gleiche Breite haben? Wenn ich eine Spalte etwas breiter anlegte, wurden alle anderen Spalten gleich breit (in Excel 2010).
Ed Greaves

Warten Sie eine Minute - diese Methode hat den Nebeneffekt, dass alle Spalten im Blatt breiter werden, nicht wahr?
Ant_222

13

WYSIWYG von Excel ist nicht das Beste. Auf deinem Bild "Katze". schleicht sich gerade noch in die 5. Reihe. Wenn Sie den Zoom-Prozentsatz auf weniger als 100% (z. B. 99%) reduzieren, wird "Kat." wird jetzt bis zur 6. Zeile umgebrochen. Ich denke, Excel versucht, die automatische Anpassung so vorzunehmen, dass fast immer alles sichtbar ist, unabhängig von der Zoomstufe.

Das ist nicht das einzige Problem, das Sie mit AutoFit haben werden. Darüber hinaus stimmt die Art und Weise, in der eine Zelle mit Zeilenumbrüchen gedruckt wird, nicht immer mit dem überein, was Sie auf dem Bildschirm sehen. Nehmen Sie Ihr Beispiel und ändern Sie die Schriftart in Courier, während Sie die Größe bei 11 belassen.

Geänderte Schriftart in Courier

Wie Sie sehen, erhält Zelle A1 1,5 zusätzliche Zeilen. Schauen Sie sich jetzt die Druckvorschau an: 'cat.' ist völlig versteckt.

Druckvorschau der gleichen Datei

Nach meiner Erfahrung tritt dieses Problem in Excel bei bestimmten Schriftarten und Schriftgrößen häufiger auf als bei anderen. Kurier ist schlechter als Kurier Neu , Größe 11 ist in der Regel schlechter als 10 oder 12. (Warum sie Größe 11 als neue Standardeinstellung gewählt haben, weiß ich nicht.)


Also ... im Grunde haben sie es gebrochen. Deine Erklärung ist zwar plausibel, aber es
nervt

3

Zu diesem Zweck habe ich gerade ein kleines Makro geschrieben. Ich habe ihm eine Tastenkombination (Strg-Umschalt-J) zugewiesen und es funktioniert wie ein Zauber für mich.

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

Um dies dauerhaft verfügbar zu machen, können Sie ganz einfach ein automatisch ladendes Add-In erstellen:

  • Erstellen Sie ein Modul in einer leeren Arbeitsmappe und fügen Sie den Code ein.
  • Weisen Sie ihm die gewünschte Tastenkombination zu.
  • dann Save As, Add-inin Ordner Auf %appdata%\Microsoft\Excel\XLSTART
    diese Weise wird es bei jedem Start von Excel unsichtbar geladen.

Oder Sie könnten dies tun: Private Sub Worksheet_Change (ByVal Target As Range) ArrangeTable End Sub
kurdtpage

0

In einigen Fällen kann das Problem des zusätzlichen Speicherplatzes in einigen Zeilen nach dem Aufrufen von "AutoFit Row Height" darin bestehen, dass eine ausgeblendete Spalte Text in diese Zeilen eingeschlossen hat.


Was bei dieser Frage nicht der Fall ist.
Dmitry Grigoryev

0

Es gibt einen KB-Artikel darüber, der "vorschlägt" (es ist in der klassischen Microsoft-Art unannehmbar spärlich), dass, wenn Sie jemals eine Zeilenhöhe festlegen, die automatische Höhenanpassung für diese Zeile des Arbeitsblatts dauerhaft wegfällt. Zeilen, deren Höhe Sie nicht berührt haben, passen sich automatisch an.

Sie können zwar die Spaltenbreiten mit der Einstellung "Standardbreite" im Jahr 2003 zurücksetzen (madman-designed 2007: Änderung auf "Standardbreite"), aber sie haben (erneut) (und erneut) vergessen, dies für Zeilen einzugeben. Die Dauerhaftigkeit scheint also unvermeidlich. Das heißt, wenn Sie eine Standardhöhe von 15 haben und ein Blatt erstellen und alle Höhen auf 12 einstellen, haben Sie die automatische Anpassung einfach verwirkt.


1
Ich kann dieses Verhalten nicht duplizieren. Sobald ich "Zeilenhöhe automatisch anpassen" ausführe, wird jede manuelle Höheneinstellung für diese Zeile sofort durch die Höhe für die automatische Anpassung ersetzt. Das Problem ist einfach, dass die Höhe der automatischen Anpassung oft falsch ist.
Devuxer

Ich kann dieses Verhalten duplizieren. Das ist genau so, wie es bei mir funktioniert.
Peter Nore

0

Manchmal gibt es die nukleare Methode, um Autoprobleme zu beheben.

Ich kopiere den Text aus jeder Zelle, füge die Daten in den Editor ein und lösche die Zeile. Dann kopiere ich sofort eine leere Zeile und füge sie ein. Sie hat jedoch die gleiche Formatierung und das gleiche Verhalten wie die gelöschte Zeile. (Sie müssen die gesamte Zeile mit den Schaltflächen der linken Zeile kopieren und einfügen.)

Sobald dies erledigt ist, müssen Sie zurückgehen und den Text aus dem Notizblock in jede Zelle einfügen. (Verwenden Sie F2den Bearbeitungsmodus für jede Zelle, oder aktivieren Sie ihn auf andere Weise, bevor Sie Text einfügen.) Dies ist ein schmerzhafter und letzter Ausweg, insbesondere für unglaublich breite Arbeitsblätter.

Es ist manchmal die einzige Lösung, da das Problem im Programm selbst liegt.


1
Kopieren Sie den Text aus jeder Zelle - dies erfordert anscheinend genauso viel Arbeit wie die manuelle Formatierung.
Dmitry Grigoryev

0

Ich habe das nicht gründlich getestet, aber es hat für mich funktioniert. Im Wesentlichen werden alle Blätter automatisch angepasst, und anschließend wird die Spaltenbreite auf die ursprüngliche Breite zurückgesetzt, sofern sie nicht durch die automatische Anpassung erweitert wurde. Ich hatte nur 10 Spalten und nie mehr als 1000 Zeilen, also passen Sie den Code nach Bedarf an.

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

Wie wird der Fehler beim automatischen Anpassen behoben? Sie passen die Zeilen automatisch an, passen die Spalten dann automatisch an und ändern dann die ursprünglichen Spaltenbreiten. Warum hat es die richtige Höhe für die passende Reihe? Übrigens totalWidthist arbeitslos.
Ant_222

Bei mir funktioniert das nicht ganz, weil Sie nur die Breite der schmaleren Spalten wiederherstellen. Ihr Algorithmus behält daher die Spaltenbreite nicht bei.
Ant_222

-1

So umschreiben Sie Dunc :

Ich habe ein ähnliches Problem gelöst durch:

  1. Auswahl der gesamten Tabelle.

  2. Doppelklicken Sie auf die Linie am Rand zwischen den beiden Zeilen.

Um Ihr Problem mit dieser zusätzlichen Zeile zu lösen, würde ich davon ausgehen, dass sich dort ein Zeichen befindet. Es mag kein sichtbarer Charakter sein, aber da ist definitiv etwas.


3
Ihre Schritte unterscheiden sich nicht von denen, die ich bereits ausprobiert habe (ein Doppelklick zwischen den Zeilen ist nur eine Abkürzung für "Zeilenhöhe automatisch anpassen"). Was Ihre Theorie betrifft, dass es einen zusätzlichen Charakter gibt, haben Sie vielleicht Recht, aber ich habe auf keinen Fall einen eingegeben, und ich würde nicht wissen, wie ich ihn loswerden könnte. Ich lade Sie ein, den genauen Text wie in meiner Abbildung in Excel einzugeben und zu prüfen, ob Sie die gleichen Ergebnisse erhalten.
Devuxer

1
Da ist kein Charakter auf meinem.
Raystafarian

-1

Ich habe mir nicht die Zeit genommen, die anderen Kommentare zu lesen. Warum die Zeile am unteren Rand des ersten Blocks und nicht im zweiten Block?

Dies liegt daran, dass der Text zu nahe am rechten Rand der Zelle endet. Wenn Sie die Spalte etwas breiter einstellen und zwischen den Zeilen doppelklicken, wird die Größe entsprechend geändert.


4
Ich habe keinen Zweifel, dass Sie Recht haben, aber dann ist das nicht mehr "auto", sondern manuell.
Devuxer

-1

Auch ich habe diesen winzigen, aber extrem störenden Fehler viele Jahre lang ertragen. Ich habe keine andere Möglichkeit, als an der Zeilenbreite der Zelle mit dem meisten Text herumzuspielen, und irgendwann wird das Programm den Text erneut ausgeben und ihn richtig anzeigen.


herumspielen mit der reihenbreite ist keine reproduzierbare lösung.
Dmitry Grigoryev

-1

Es gibt eine einfache Lösung:

1) Wählen Sie alle Zeilen aus, die Sie automatisch formatieren möchten (wenn es sich um einen großen Block handelt, klicken Sie zuerst auf den ersten Block und drücken Sie dann Umschalt + Ende und Umschalt + Nach unten).

2) Klicken Sie mit der rechten Maustaste auf die Auswahl, Zellen formatieren, Registerkarte Ausrichtung, und deaktivieren Sie die Option Text umbrechen.

Hoffe das hilft ;)


1
Wenn Sie diese Option deaktivieren Wrap text, ist es nicht mehr sinnvoll , die Zeilenhöhen automatisch anzupassen, da alle Zeilen dieselbe Größe haben.
Dmitry Grigoryev

Dieses Problem beschäftigt mich seit Jahren. Durch Umschalten von Wrap Text für eine problematische Zeile wurde die Funktion zur automatischen Anpassung wiederhergestellt.
Mitch

-1

Ich habe Excel 2010. Ich habe festgestellt, dass dieses Problem bei mir aufgetreten ist, als meine Zoomeinstellung nicht 100% betrug. Solange ich bei 100% bin, wird der Text mit der automatischen Anpassung für Spalten und Zeilen nicht abgeschnitten


3
In dem Beispiel, das ich für meine Frage verwendet habe, war ich die ganze Zeit bei Zoom = 100%. Das Problem trat trotzdem auf.
Devuxer

-1

Meine Hypothese ist, dass Excel verknotet wird, wenn es zu viele Zeilen verlängern muss. Ich hatte eine ähnliche Erfahrung wie oben. Es sieht so aus, als gäbe es am Ende eine zusätzliche NL / CR / LF, aber ich weiß, dass es keine gibt. Wenn ich einige Zeichen gleichzeitig in der Zelle aufbaue, formatiert sie automatisch OK, bis eine bestimmte Größe erreicht ist, und fügt dann die zusätzliche Zeile ein. (Ähnlich verhält es sich in umgekehrter Reihenfolge, wenn Sie zunächst einige Zeichen löschen.) Dies geschieht zu unterschiedlichen Zeiten mit unterschiedlichen Zellen.

Schade!

Also , wenn Sie können die Zellenbreite erstrecken, können Sie wahrscheinlich das Problem vermeiden. Wenn Sie nicht können (wie in meinem Fall), bleiben Sie bei der manuellen Formatierung. Wie gesagt "Mist!"


-1

Tatsächlich gibt es dort einen zusätzlichen Charakter. Es ist das versteckte LF-Zeichen, das sich am Ende jedes Feldes befindet. Wenn der Text genau die richtige Größe hat, enthält die zusätzliche Zeile das LF-Zeichen. Das Ändern der Spaltenbreite, wie von anderen vorgeschlagen, behebt das Problem dieser Zelle. Wenn Ihre Tabelle jedoch viele unterschiedliche Größenwerte in derselben Spalte enthält, kann dies dazu führen, dass das Problem bei einer anderen Zelle in der Spalte auftritt . Ich habe die meiste Zeit gelernt, damit zu leben.


Am Ende eines jeden Feldes steht mit Sicherheit kein verstecktes LF-Zeichen , es sei denn, das OP hat es mit Alt + Enter dort abgelegt. Die Frage bezieht sich wirklich auf den Fall, dass kein Zeilenumbruchzeichen vorhanden ist, Excel jedoch die Zellen immer noch nicht richtig ausrichtet.
Dmitry Grigoryev

-2

Was bei mir (Excel 2010) funktioniert hat, war das Löschen von ungefähr hundert nicht verwendeten Spalten rechts von meinen Daten. Ich kann nur vermuten, dass es etwas gab, das dazu führte, dass sich die automatische Zeilenhöhe schlecht verhielt.


4
Ich kann sehen, wie das helfen würde, aber es macht keinen Unterschied für den in meiner Frage gezeigten Testfall.
Devuxer

-2

Wählen Sie alle Zellen aus und klicken Sie auf die Linie, die die Zeilen zweimal voneinander trennt. Dies wird automatisch durchgeführt.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.