¿Cómo hacer que la función "Altura de fila de ajuste automático" de Excel se ajuste automáticamente a la altura de fila?


88

Para cada generación de Excel que puedo recordar (incluido 2010, que estoy usando ahora), las características de "Fila de tamaño automático" de Excel a veces no logran ajustar automáticamente el tamaño de una fila cuando la celda contiene texto envuelto. Cuando funciona correctamente, se revela todo el texto y no hay espacio adicional debajo de la última línea de texto. Cuando falla, agrega espacio adicional debajo del texto. Para empeorar las cosas, lo que ves no siempre es lo que obtienes, es decir, el texto que apareció bien en la pantalla se corta cuando se imprime. También obtienes diferentes tamaños dependiendo de si has ampliado / reducido el tamaño real.

Caso de prueba simple:

¿Por qué hay un espacio de una línea después del texto en la celda A1 pero no en la A2?

(Para reproducir: establezca el ancho de la columna A en 17,14 (125 píxeles), ajuste de texto y alineación de celda en la parte superior).

(Verifiqué dos veces que apliqué Altura de fila de ajuste automático a ambas filas. El nivel de zoom es del 100%).

Auto Fit falla en la primera fila, tiene éxito en la segunda

¿Existe algún remedio conocido para esto sin recurrir al ajuste manual de las alturas de las filas (que no es práctico para más de un puñado de filas)?


En caso de que alguien quiera reproducir el ejemplo en mi pregunta, el ancho de la columna A es 17.15 (125 píxeles).
devuxer

1
El error parece depender de la fuente y el tamaño de la fuente
Raystafarian

1
@Raystafarian, no parece funcionar con Wrap Text activado.
devuxer

1
Intenté ajustar automáticamente las columnas, que ampliaron una columna, y luego ajustar automáticamente las filas. Eso lo redujo de 73 a 64 páginas, pero aún hay muchas líneas en blanco en la parte inferior de la mayoría de las filas. Tengo las filas alineadas arriba. Cambiar manualmente el tamaño de las filas hace que se vea bien cuando estoy trabajando en el documento, pero no en la vista previa o en la impresión.

1
Sí, muy molesto! También lo vi al menos en Excel 2007. No recuerdo haberlo visto nunca en Excel 2003.
Resumen

Respuestas:


105

Un método que acabo de encontrar (extendiendo un poco la publicación anterior):

  • Selecciona toda la hoja.
  • Cambiar el tamaño de una columna un poco más (porque se selecciona toda la hoja, todas las columnas se ensancharán)
  • Haga doble clic en un separador de fila: la altura de la fila se ajustará automáticamente
  • Haga doble clic en un separador de columna: los anchos de columna se ajustarán automáticamente

Voila!


2
Esto realmente parece funcionar. El área gris es donde dices "un poco más ancho". Uno de los ejemplos que probé no funcionó a menos que estire la columna bastante, pero eventualmente logré que funcione. ¡Gracias!
devuxer

55
Seleccioné toda la hoja y luego hice doble clic en el separador de filas entre dos filas aleatorias y todo el documento reajustó las alturas de las filas.
Keith Sirmons

66
Tenga en cuenta que AutoFit no funciona para ninguna celda combinada: support.microsoft.com/kb/212010
freb

¿No funciona este método solo si todas las columnas tienen el mismo ancho? Cuando cambié el tamaño de una columna un poco más, todas las demás columnas se volvieron del mismo ancho (en Excel 2010).
Ed Greaves

Espere un minuto: este método tiene el efecto secundario de aumentar el ancho de todas las columnas de la hoja, ¿no es así?
Ant_222

13

WYSIWYG de Excel no es el mejor. En tu foto, 'gato'. apenas se cuela en la quinta línea. Si reduce el porcentaje de zoom a menos del 100% (99%, por ejemplo), entonces 'cat'. ahora está envuelto hasta la sexta línea. Creo que Excel está tratando de ajustarse automáticamente de una manera que garantice que todo esté casi siempre visible sin importar su nivel de zoom.

Ese no es el único problema que tendrá con AutoFit. Además, la forma en que se imprime una celda envuelta en palabras no siempre coincidirá con lo que ve en la pantalla. Tome su ejemplo y cambie la fuente a Courier mientras deja el tamaño en 11.

Fuente cambiada a Courier

Como puede ver, la celda A1 parece recibir 1.5 líneas adicionales. Ahora mire la vista previa de impresión, 'gato'. Está completamente oculto.

Vista previa de impresión del mismo archivo

En mi experiencia, Excel tiene este problema con ciertas fuentes y tamaños de fuente más que otros. Courier es peor que Courier New , el tamaño 11 es generalmente peor que 10 o 12. (Por qué eligieron el tamaño 11 como el nuevo valor predeterminado, no tengo idea).


Entonces ... básicamente lo rompieron. Sin embargo, su explicación es plausible, pero realmente me molesta, que es así: - /
abstrask

3

Acabo de escribir una pequeña macro para ese propósito. Le asigné una tecla de acceso directo (Ctrl-Shift-J) y funciona de maravilla para mí.

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

Para que esto esté permanentemente disponible, puede hacer fácilmente un complemento de carga automática:

  • crear un módulo en un nuevo libro en blanco y pegar el código,
  • asígnele la tecla de acceso directo que desee,
  • luego Save As, Add-ina la carpeta De %appdata%\Microsoft\Excel\XLSTART
    esta manera, se cargará de forma invisible cada vez que inicie Excel.

O podría hacer esto: Private Sub Worksheet_Change (ByVal Target As Range) ArrangeTable End Sub
kurdtpage

0

En algunos casos, el problema del espacio extra en algunas filas después de invocar "Altura de fila de ajuste automático" puede ser que una columna oculta haya envuelto texto en esas filas.


Cuál no es el caso en esta pregunta.
Dmitry Grigoryev

0

Hay un artículo de kb sobre esto que "sugiere" (es inaceptablemente escaso, al estilo clásico de Microsoft) que si alguna vez establece una altura de fila, el ajuste automático de altura automática desaparece permanentemente para esa fila de esa hoja de trabajo. Sin embargo, las filas cuya altura no has tocado se ajustarán automáticamente.

Si bien puede restablecer los anchos de columna con la configuración de "ancho estándar" en 2003 (diseñado por madman 2007: cambie a "ancho predeterminado"), pero se olvidaron (una vez más) (y otra vez) de poner eso en las filas. Entonces la permanencia parece inevitable. Eso significa que, si tiene una altura predeterminada de 15, y crea una hoja y establece todas las alturas en 12, simplemente perderá el ajuste automático.


1
No puedo duplicar este comportamiento. Tan pronto como hago "Ajuste automático de altura de fila", cualquier ajuste de altura manual para esa fila se reemplaza inmediatamente con la altura de ajuste automático. El problema es simplemente que la altura de ajuste automático a menudo es incorrecta.
devuxer

PUEDO duplicar este comportamiento. Esto es exactamente como funciona para mí.
Peter Nore

0

A veces existe el método nuclear para solucionar problemas automáticos.

Lo que hago es copiar el texto de cada celda y pegar los datos en el Bloc de notas, luego eliminar la fila. Luego copio e inserto inmediatamente una fila que está en blanco pero que tiene el mismo formato y buen comportamiento que la fila que se eliminó. (Debe copiar e insertar la fila completa utilizando los botones de la fila izquierda).

Una vez hecho esto, debe regresar e insertar el texto del bloc de notas en cada celda. (Use F2o active el modo de edición de cada celda antes de insertar texto). Es una molestia, por lo que es un último recurso, especialmente para hojas de trabajo deslumbrantemente anchas.

Es la única solución a veces, ya que el problema reside en el propio programa.


1
copie el texto de cada celda ; esto parece requerir tanto trabajo como el formateo manual.
Dmitry Grigoryev

0

No lo he probado a fondo, pero me ha funcionado. Esencialmente, ajustará automáticamente todas las hojas y luego volverá a pasar y establecerá el ancho de la columna al ancho original, a menos que se haya extendido por el ajuste automático. Solo tenía 10 columnas y nunca más de 1000 filas, así que ajuste el código según sea necesario.

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

¿Cómo resuelve el error de autoajuste? Usted ajusta automáticamente las filas, luego autoajusta las columnas y luego restablece los anchos de columna originales. ¿Por qué termina con la altura de fila de ajuste correcta? Por cierto, totalWidthestá desempleado.
Ant_222

No funciona completamente para mí, porque restaura el ancho solo de aquellas columnas que se han vuelto más estrechas. Su algoritmo por lo tanto no retiene el ancho de columna.
Ant_222

-1

Parafraseando a Dunc :

He resuelto un problema similar al:

  1. Selección de toda la hoja de cálculo.

  2. Haga doble clic en la línea en el margen entre las dos filas.

Específicamente para abordar su problema de esa línea adicional, supongo que hay un personaje allí. Puede que no sea un personaje visible, pero definitivamente hay algo allí.


3
Sus pasos no son diferentes de lo que ya probé (hacer doble clic entre las filas es solo un atajo para "Ajuste automático de altura de fila"). En cuanto a su teoría de que hay un personaje adicional, puede que tenga razón, pero ciertamente no escribí uno, y no sabría cómo deshacerme de él. Te invito a que intentes escribir el texto exacto que tengo en mi ilustración en Excel y ver si obtienes los mismos resultados.
devuxer

1
No hay ningún personaje allí en el mío.
Raystafarian

-1

No me tomé el tiempo de leer los otros comentarios. ¿Por qué la línea en la parte inferior del primer bloque y no en el segundo bloque?

Es porque el texto termina demasiado cerca del borde derecho de la celda. Si ajusta la columna para que sea un poco más ancha y haga doble clic entre las filas, se redimensionará en consecuencia.


44
No tengo dudas de que estás en lo correcto, pero eso ya no es "automático", es manual.
devuxer

-1

Yo también he soportado este pequeño pero extremadamente molesto error durante muchos años. No tengo una solución alternativa, excepto jugar con el ancho de fila de la celda con la mayor parte del texto, y eventualmente el programa cederá y mostrará el texto correctamente.


juguetear con el ancho de la fila no es una solución reproducible.
Dmitry Grigoryev

-1

Hay una solución fácil:

1) Seleccione todas las filas que desea formatear automáticamente (si es un bloque grande, haga clic en el primero y luego presione Mayús + Fin y Mayús + Abajo)

2) Haga clic derecho en la selección, Formato de celdas, pestaña Alineación, desmarque Ajustar texto.

Espero que esto ayude ;)


1
Si desmarca Wrap text, ya no tiene sentido ajustar automáticamente las alturas de las filas, ya que todas las filas serán del mismo tamaño.
Dmitry Grigoryev

Este problema me ha molestado durante años. Al alternar el texto de ajuste para una fila problemática se restauró la función de ajuste automático.
Mitch

-1

Tengo Excel 2010. Descubrí que este problema me ocurrió cuando mi configuración de Zoom no estaba al 100%. Mientras esté al 100%, no se corta el texto con Autoajuste para columnas y filas


3
En el ejemplo que usé para mi pregunta, estaba en zoom = 100% todo el tiempo. El problema ocurrió independientemente.
devuxer

-1

Mi hipótesis es que Excel se anuda cuando tiene que extender demasiadas líneas. Tuve una experiencia similar a la anterior. Se ve que hay una NL / CR / LF extra al final, pero sé que no hay. Si construyo la celda algunos caracteres a la vez, se formatea automáticamente OK hasta que se alcanza un tamaño particular, luego se pone la línea adicional. (Se produce un comportamiento similar en reversa si comienza eliminando algunos caracteres). Ocurre en diferentes momentos con diferentes celdas.

¡Gorrón!

Entonces, si puede extender el ancho de la celda, probablemente pueda evitar el problema. Si no puede (como en mi caso) está atascado con el formateo manual. Como dije, "¡Bummer!"


-1

En realidad hay un personaje extra allí. Es el personaje LF oculto que se encuentra al final de cada campo. Cuando el texto tiene el tamaño correcto, la fila adicional está ahí para contener el carácter LF. Cambiar el tamaño del ancho de la columna como han sugerido otras personas resolverá el problema de esa celda, pero si su hoja de cálculo tiene muchos valores de tamaño variable en esta misma columna, es posible que su corrección para esta celda cause que otra celda en la columna tenga el problema . He aprendido a vivir con eso la mayor parte del tiempo.


Ciertamente, no hay ningún carácter LF oculto al final de cada campo, a menos que, por supuesto, el OP lo haya puesto allí con Alt + Enter. La pregunta es realmente sobre el caso cuando no hay un carácter de nueva línea, pero Excel todavía no puede alinear las celdas correctamente.
Dmitry Grigoryev

-2

Lo que funcionó para mí (Excel 2010), fue eliminar un centenar de columnas no utilizadas a la derecha de mis datos. Solo puedo adivinar que había algo allí que causaba que la altura de la fila automática se comportara mal.


44
Puedo ver cómo eso ayudaría, pero no hace ninguna diferencia para el caso de prueba que se muestra en mi pregunta.
devuxer

-2

seleccione todas las celdas y haga clic en la línea que separa las filas dos veces ... lo hará automáticamente.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.