2012-02-14 21:16:14 +0000 2012-02-14 21:16:14 +0000
91
91

Come rendere la funzione "Auto Fit Row Height" di Excel "Auto Fit Row Height" effettivamente auto adattare l'altezza della fila?

Per ogni generazione di Excel posso ricordare (compreso il 2010, che sto usando ora), Excel “Auto Size Row” caratteristiche di Excel a volte non riesce a dimensioni effettivamente auto dimensione di una riga quando la cella contiene il testo avvolto. Quando funziona correttamente, tutto il testo viene rivelato e non c'è spazio aggiuntivo sotto l'ultima riga di testo. Quando non funziona, aggiunge spazio extra sotto il testo. A peggiorare le cose, ciò che si vede non è sempre quello che si ottiene, cioè, il testo che appariva bene sullo schermo viene tagliato quando viene stampato. Si ottiene anche un diverso dimensionamento a seconda che si sia ingrandito o meno o che si sia in dimensioni reali.

Semplice caso di prova:

Perché c'è uno spazio di una riga dopo il testo nella cella A1 ma non in A2?

(Per riprodurre: impostare la larghezza della colonna A a 17,14 (125 pixel), l'avvolgimento del testo e l'allineamento della cella in alto.)

(Ho controllato due volte che ho applicato l'altezza della riga di Auto Fit su entrambe le righe. Il livello di zoom è del 100%)

Esiste un rimedio noto per questo senza ricorrere alla regolazione manuale dell'altezza delle righe (che non è pratica per più di una manciata di righe)?

Risposte (16)

106
106
106
2012-12-05 10:49:44 +0000

Un metodo che ho appena trovato (estendendo un po’ il post precedente):

  • Selezionare l'intero foglio.
  • Ridimensionare una colonna un po’ più ampia (poiché viene selezionato l'intero foglio, tutte le colonne si allargheranno)
  • Fare doppio clic su un separatore di riga - l'altezza della riga sarà autoadattata
  • Fare doppio clic su un separatore di colonna - le larghezze delle colonne saranno autoadattate

Voilà!

13
13
13
2012-02-15 19:07:25 +0000

Il WYSIWYG di Excel non è il migliore. Nella tua foto, il “gatto” si insinua a malapena nella quinta riga. Se si riduce la percentuale di zoom a meno del 100% (99% per esempio), allora il “gatto” è ora avvolto nella 6a riga. Penso che Excel stia cercando di adattarsi in modo che tutto sia quasi sempre visibile, indipendentemente dal livello di zoom.

Questo non è l'unico problema che avrete con l'AutoFit. Inoltre, il modo in cui viene stampata una cella avvolta da una parola non sempre corrisponderà a quello che si vede sullo schermo. Prendete il vostro esempio e cambiate il font in Courier lasciando la dimensione a 11.

Come potete vedere, la cella A1 sembra avere 1,5 righe in più. Ora guardate l'anteprima di stampa, ‘cat.’ è completamente nascosto.

Nella mia esperienza, Excel ha questo problema con alcuni font e dimensioni di font più di altri. Courier è peggiore di Courier New , la dimensione 11 è generalmente peggiore di 10 o 12. (Non ho idea del perché abbiano scelto la dimensione 11 come nuova predefinita).

3
3
3
2016-01-22 08:51:09 +0000

Ho appena scritto una piccola macro a questo scopo. Le ho assegnato un tasto di scelta rapida (Ctrl-Shift-J) e per me funziona come un incantesimo.

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
``` &001 


Per renderlo disponibile in modo permanente, si può facilmente fare un add-in di caricamento automatico: 


- creare un modulo in una cartella di lavoro vuota fresca e incollare il codice, 
- assegnargli il tasto di scelta rapida che si desidera, 
- poi `Save As`, `Add-in`, nella cartella `%appdata%\Microsoft\Excel\XLSTART` 
In questo modo sarà caricato invisibilmente ogni volta che si avvia Excel.
0
0
0
2013-05-01 19:58:57 +0000

C'è un articolo kb article su questo che “suggerisce” (è inaccettabilmente scarso, nel classico stile Microsoft) che se si imposta un'altezza di una fila, l'autofitting automatico dell'altezza è definitivamente eliminato per quella fila di quel foglio di lavoro. Le righe di cui non avete toccato l'altezza andranno bene comunque autofitting.

Mentre si possono resettare le larghezze delle colonne con l'impostazione “larghezza standard” nel 2003 (follemente progettato nel 2007: cambiare a “larghezza predefinita”), ma si sono dimenticati (di nuovo) (e di nuovo) di metterlo per le righe. Quindi la permanenza sembra inevitabile. Ciò significa che, se si ha un'altezza predefinita di 15, e si crea un foglio e si impostano tutte le altezze a 12, si perde l'autofitting automatico.

0
0
0
2013-07-05 17:03:56 +0000

A volte c'è il metodo nucleare per correggere gli autoproblemi di cattiva condotta.

Quello che faccio è copiare il testo da ogni cella e incollare i dati nel Blocco note, poi cancellare la riga. Poi copio immediatamente e inserisco una riga che è vuota ma che ha la stessa formattazione e lo stesso buon comportamento della riga che è stata cancellata. (È necessario copiare e inserire l'intera riga utilizzando i pulsanti della riga sinistra.)

Una volta fatto questo, si deve tornare indietro e inserire il testo da Notepad in ogni cella. (Usare F2 o attivare in altro modo la modalità di modifica di ogni cella prima di inserire il testo). È una sofferenza, quindi è l'ultima risorsa, specialmente per fogli di lavoro ginormeously wide.

È l'unica soluzione a volte, dato che il problema risiede nel programma stesso.

0
0
0
2015-01-08 19:14:53 +0000

Non l'ho testato a fondo, ma ha funzionato per me. In sostanza, regolerà automaticamente tutti i fogli, poi tornerà indietro e imposterà la larghezza della colonna alla larghezza originale, a meno che non sia stata estesa dall'auto-regolazione. Avevo solo 10 colonne e mai più di 1000 righe, quindi regolare il codice come necessario.

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
0
0
2012-06-21 14:33:14 +0000

In alcuni casi, il problema dello spazio extra in alcune righe dopo aver invocato “AutoFit Row Height” può essere che una colonna nascosta abbia avvolto il testo in quelle righe.

-1
-1
-1
2013-04-08 16:10:30 +0000

Ho Excel 2010. Ho scoperto che questo problema mi è successo quando la mia impostazione dello zoom non era al 100%. Finché sono al 100%, non mi viene tagliato il testo con l'AutoFit per le colonne e le righe

-1
-1
-1
2012-02-14 21:29:39 +0000

Per parafrasare Dunc :

ho risolto un problema simile da:

    1. Selezionando l'intero foglio di calcolo.
    1. Facendo doppio clic sulla riga a margine tra le due righe.

In particolare, per risolvere il problema di quella riga in più, suppongo che ci sia un carattere. Potrebbe non essere un carattere visibile, ma c'è sicuramente qualcosa.

-1
-1
-1
2013-01-01 11:17:02 +0000

Anch'io ho sopportato questo minuscolo ma estremamente distraente bug per molti anni. Non ho altro da fare se non armeggiare con la larghezza delle righe della cella con la maggior parte del testo, e alla fine il programma cederà e mostrerà il testo in modo corretto.

-1
-1
-1
2013-02-26 11:57:20 +0000

C'è una soluzione semplice:

1) Selezionare tutte le righe che si desidera formattare automaticamente (se si tratta di un blocco grande cliccare sul primo e poi premere Shift+Fine e Shift+Giù)

2) Cliccare con il tasto destro del mouse sulla selezione, formattare le celle, scheda Allineamento, deselezionare il testo a capo.

Spero che questo aiuti ;)

-1
-1
-1
2015-12-17 16:10:03 +0000

In realtà c'è un personaggio in più. È il carattere LF nascosto che si trova alla fine di ogni campo. Quando il testo è della giusta dimensione, la riga extra è lì per contenere il carattere LF. Ridimensionare la larghezza della colonna come suggerito da altri risolverà il problema di quella cella, ma se il vostro foglio di calcolo ha molti valori di dimensione variabile in questa stessa colonna, è possibile che la vostra soluzione per questa cella faccia sì che un'altra cella nella colonna abbia il problema. Ho imparato a conviverci la maggior parte delle volte.

-1
-1
-1
2012-08-06 12:19:12 +0000

Non mi sono preso il tempo di leggere gli altri commenti. Perché la riga in fondo al primo blocco e non nel secondo blocco?

Perché il testo finisce troppo vicino al bordo destro della cella. Se si regola la colonna in modo che sia un po’ più larga e si fa un doppio click tra le righe, si ridimensionerà di conseguenza.

-1
-1
-1
2013-06-20 11:46:42 +0000

La mia ipotesi è che Excel si annoda quando deve prolungare troppe linee. Ho avuto un'esperienza simile a questa. Sembra che alla fine ci sia un NL/CR/LF in più, ma so che non è così. Se costruisco la cella alcuni caratteri alla volta, si auto-formatta OK fino a quando non si raggiunge una particolare dimensione, poi si mette nella riga in più. (Un comportamento simile al contrario avviene se si inizia cancellando alcuni caratteri). Succede in tempi diversi con celle diverse.

Bummer!

Bummer!

Quindi se si può estendere la larghezza della cella, probabilmente si può evitare il problema. Se non ci riesci (come nel mio caso) sei bloccato con la formattazione manuale. Come ho detto, “Bummer!

-2
-2
-2
2013-01-30 20:38:33 +0000

selezionare tutte le celle e cliccare due volte sulla riga che separa le righe… lo farà automaticamente.

-2
-2
-2
2012-12-20 00:41:51 +0000

Ciò che ha funzionato per me (Excel 2010), è stato quello di cancellare un centinaio di colonne inutilizzate a destra dei miei dati. Posso solo immaginare che ci sia stato qualcosa che ha causato l'altezza delle righe automatiche.