Como tornar o recurso “Auto Fit Row Height” do Excel realmente ajustado automaticamente à altura da linha?

84

Para cada geração do Excel que eu possa lembrar (incluindo 2010, que estou usando agora), os recursos "Auto Size Row" do Excel às vezes não auto dimensionam uma linha quando a célula contém texto agrupado. Quando funciona corretamente, todo o texto é revelado e não há espaço adicional abaixo da última linha do texto. Quando falha, adiciona espaço extra abaixo do texto. Para piorar, o que você vê nem sempre é o que obtém, ou seja, o texto que aparece bem na tela é cortado quando é impresso. Você também obtém tamanhos diferentes dependendo se você está ampliando / reduzindo o zoom ou no tamanho real.

Caso de teste simples:

Por que existe uma lacuna de uma linha após o texto na célula A1, mas não na A2?

(Para reproduzir: defina a largura da coluna A para 17,14 (125 pixels), a quebra de texto e o topo do alinhamento da célula.)

(Verifiquei novamente se apliquei a altura da linha de ajuste automático às duas linhas. O nível de zoom é 100%.)

Existe algum remédio conhecido para isso sem recorrer ao ajuste manual das alturas das linhas (o que não é prático para mais do que um punhado de linhas)?

    
por devuxer 14.02.2012 / 22:16

16 respostas

97

Um método que acabei de encontrar (estendendo um pouco o post anterior):

  • Selecione a folha inteira.
  • Redimensione uma coluna um pouco mais (porque o folha inteira é selecionada, todas as colunas serão ampliadas)
  • Clique duas vezes em um separador de linha - a altura da linha será ajustada automaticamente
  • Clique duas vezes em um separador de coluna - as larguras das colunas serão ajustadas automaticamente

Voila!

    
por 05.12.2012 / 11:49
13

O WYSIWYG do Excel não é o melhor. Na sua foto, 'gato'. apenas mal entra na 5 ª linha. Se você reduzir a porcentagem de zoom para algo menor que 100% (99%, por exemplo), então 'cat.' está agora envolto na sexta linha. Acho que o Excel está tentando se ajustar automaticamente de forma a garantir que tudo esteja quase sempre visível, independentemente do nível de zoom.

Esse não é o único problema que você terá com o AutoAjuste. Além disso, o modo como uma célula embrulhada em uma palavra é impressa nem sempre corresponde ao que você vê na tela. Tome seu exemplo e mude a fonte para Courier, deixando o tamanho em 11.

Comovocêpodever,acélulaA1parecereceber1,5linhasextras.Agora,olheparapré-visualização,'cat.'estácompletamenteoculto.

Na minha experiência, o Excel tem esse problema com determinadas fontes e tamanhos de fonte mais do que outros. Courier é pior que Courier New , o tamanho 11 é geralmente pior que 10 ou 12. (Por que eles escolheram o tamanho 11 como o novo padrão, não tenho ideia.)

    
por 15.02.2012 / 20:07
2

Acabei de escrever uma macro pequena para esse fim. Eu atribuí uma tecla de atalho (Ctrl-Shift-J) e funciona como um encanto para mim.

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 disponibilizá-lo permanentemente, você pode facilmente criar um suplemento de carregamento automático:

  • crie um módulo em uma nova pasta de trabalho em branco e cole o código
  • atribua a tecla de atalho desejada,
  • , em seguida, Save As , Add-in , para a pasta %appdata%\Microsoft\Excel\XLSTART
    Desta forma, será carregado de forma invisível sempre que iniciar o Excel.
por 22.01.2016 / 09:51
0

Em alguns casos, o problema de espaço extra em algumas linhas depois de chamar "AutoAjuste da Altura da Linha" pode ser que uma coluna oculta tenha envolvido o texto nessas linhas.

    
por 21.06.2012 / 16:33
0

Eu também tenho suportado esse pequeno mas extremamente perturbador bug por muitos anos. Não tenho nenhuma alternativa, a não ser mexer na largura da linha da célula com a maioria dos textos, e eventualmente o programa irá ceder e mostrar o texto corretamente.

    
por 01.01.2013 / 12:17
0

Existe uma solução fácil:

1) Selecione todas as linhas que você deseja autoformatar (se for um bloco grande, clique no primeiro e pressione Shift + End e Shift + Down)

2) Clique com o botão direito do mouse na seleção, Formatar células, guia Alinhamento, desmarque a opção Quebrar o texto.

Espero que isso ajude;)

    
por 26.02.2013 / 12:57
0

Tenho o Excel 2010. Descobri que esse problema aconteceu comigo quando a configuração de zoom não estava em 100%. Enquanto eu estiver em 100%, não obtenho o texto cortado com o AutoAjuste para colunas e linhas

    
por 08.04.2013 / 18:10
0

Existe um artigo kb sobre o que "sugere" (é inaceitavelmente escasso, na moda clássica da Microsoft) que, se Se você definir uma altura de linha, o ajuste automático automático de altura será removido permanentemente para essa linha dessa planilha. Linhas cuja altura você não tocou serão autofit bem embora.

Enquanto você pode redefinir as larguras das colunas com a configuração "largura padrão" em 2003 (madman-designed 2007: mude para "default width"), mas eles esqueceram (novamente) (e novamente) para colocar as linhas. Então a permanência parece inevitável. Isso significa que, se você tiver uma altura padrão de 15, criar uma planilha e definir todas as alturas como 12, você perderá a autofit automática.

    
por 01.05.2013 / 21:58
0

Às vezes, há o método nuclear para corrigir problemas autoproblemas.

O que eu faço é copiar o texto de cada célula e colar os dados no bloco de notas e excluir a linha. Em seguida, copio e insiro imediatamente uma linha que está em branco, mas que possui a mesma formatação e bom comportamento da linha que foi excluída. (Você deve copiar e inserir a linha inteira usando os botões da linha esquerda.)

Uma vez feito isso, você tem que voltar e inserir o texto do bloco de notas em cada célula. (Use F2 ou ative o modo de edição de cada célula antes de inserir texto.) É uma dor, por isso é um último recurso, especialmente para planilhas largas.

É a única solução às vezes, pois o problema reside no próprio programa.

    
por 05.07.2013 / 19:03
0

Eu não testei completamente isso, mas está funcionando para mim. Essencialmente, ele ajusta automaticamente todas as folhas, em seguida, volta e define a largura da coluna para a largura original, a menos que tenha sido estendido pelo ajuste automático. Eu só tinha 10 colunas e nunca mais de 1000 linhas, então ajuste o código conforme necessário.

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
    
por 08.01.2015 / 20:14
-1

Parafraseando Dunc :

Eu resolvi um problema parecido por:

  1. Selecionando a planilha inteira.

  2. Clique duas vezes na linha na margem entre as duas linhas.

Especificamente para resolver o problema da linha extra, suponho que haja um caractere lá. Pode não ser um personagem visível, mas definitivamente há algo lá.

    
por 14.02.2012 / 22:29
-1

Não aproveitei para ler os outros comentários. Por que a linha na parte inferior do primeiro bloco e não no segundo bloco?

É porque o texto termina muito perto da borda direita da célula. Se você ajustar a coluna para ficar um pouco mais larga e clicar duas vezes entre as linhas, ela será redimensionada de acordo.

    
por 06.08.2012 / 14:19
-1

selecione todas as células e clique na linha que separa as linhas duas vezes ... ele fará isso automaticamente.

    
por 30.01.2013 / 21:38
-1

Minha hipótese é que o Excel fica com nós quando tem que estender muitas linhas. Eu tive uma experiência semelhante ao acima. parece que há um NL / CR / LF extra no final, mas eu sei que não há. Se eu criar alguns caracteres por vez, ele formatará o OK até que um tamanho específico seja atingido e, em seguida, coloque a linha extra. (Comportamento semelhante acontece ao contrário, se você começar excluindo alguns caracteres.) Isso acontece em momentos diferentes com células diferentes.

Que pena!

Então, se você puder estender a largura da célula, provavelmente poderá evitar o problema. Se você não puder (como no meu caso), você está preso à formatação manual. Como eu disse, "Que chatice!"

    
por 20.06.2013 / 13:46
-1

Na verdade, existe um caractere extra lá. É o personagem LF oculto que está no final de cada campo. Quando o texto tem o tamanho certo, a linha extra está lá para conter o caractere LF. Redimensionar a largura da coluna como outras pessoas sugeriram resolverá o problema dessa célula, mas se sua planilha tiver muitos valores de tamanho variável nessa mesma coluna, é possível que sua correção para essa célula faça com que outra célula na coluna tenha o problema . Eu aprendi a viver com isso a maior parte do tempo.

    
por 17.12.2015 / 17:10
-2

O que funcionou para mim (Excel 2010) foi excluir cem ou mais colunas não utilizadas à direita dos meus dados. Eu só posso imaginar que havia algo lá causando a má altura da linha para se comportar mal.

    
por 20.12.2012 / 01:41