Excel - Impedir que o texto da célula seja transbordado para a próxima célula (vazia)


72

Quando você tem texto em uma célula do Excel que é muito longo para ser mostrado na área visível dessa célula e a próxima célula à direita está vazia, o Excel permite que o texto seja exibido na próxima célula (e na próxima e na próximo, conforme necessário). Eu quero mudar isso; Eu quero evitar esse excesso de texto.

Eu sei que posso evitar isso ativando o "quebra de linha" e ajustando a altura da linha. Mas não é isso que eu quero.

Quero alterar o comportamento PADRÃO do Excel para que ele mostre o valor de cada célula apenas na área visível dessa célula. Sem excesso, sem quebra de linha.

Isso é possível? (Estou usando o Excel 2010, a propósito.)


5
se ele vai virar para fora para não ser possível, você pode usar um caractere de espaço para as células vazias ...
Aprillion

bastante interessante - não conheço outra maneira senão usar WordWrap, Font-AutoSize ou caracteres nas outras células.
Jook

11
Você pode truncar caracteres extras selecionando todas as células, acessando Data / Text to Columnse especificando uma pausa após o número de caracteres que cabem em uma célula sem quebrar / transbordar. Lembre-se de pular a coluna adicional criada que contém os caracteres extras!
Karan

Eu acho que isso iria responder a sua pergunta: superuser.com/a/878605/497156
Sulaiman

"Eu sei que posso evitar isso ativando" quebra de linha "e ajustando a altura da linha." Obrigado! Essa é a minha solução selecionada.
Ochado 03/07

Respostas:


4

Pode não ser uma opção para todos, mas se você importar o documento para o Planilhas Google, essa funcionalidade é suportada por padrão. Na barra de menus superior, três tipos de quebra de texto são suportados. Estouro, quebra e clipe. Você está procurando um clipe.

Dependendo dos requisitos, essa pode ser uma opção viável para algumas pessoas.


5
Portanto, sua resposta é realmente largar o Excel e seguir as folhas do Google.
Solar Mike

Como eu disse, não é uma opção para todos, mas pode ser uma boa solução para alguns.
yellavon

@SolarMike - obrigado. Fiquei confuso, mas seu comentário classifica essa resposta. Eu acho que yellavon assume que as pessoas vão recusar sua resposta e, como tal, é defensivo - antes de realmente explicar a resposta. Seu comentário é mais conciso em comparação com a resposta real postada.
barrypicker

Na verdade, essa é a resposta mais próxima de uma solução real. Eu descobri que no Excel você pode fazer algo semelhante a isso. Ajuste a coluna para a largura desejada, ative a distorção de palavra na coluna (o que fará com que todas as alturas de linha aumentem) e, finalmente, selecione todas as linhas e ajuste as alturas de linha para a altura desejada. Voila! Você agora tem texto em células que não fazer transbordo para as células adjacentes (@ yellavon: eu vou aceitar sua resposta, você pode querer atualizá-lo para conter esse comportamento Excel para que as pessoas podem acessar a solução mais facilmente).
e-mre

49

Sim, você pode alterar esse comportamento, mas provavelmente não desejará os efeitos colaterais que isso causa.

A chave para limitar o conteúdo da célula aos limites da célula, independentemente de a célula adjacente conter dados, é o alinhamento do texto Fill. Selecione as células que você não quer transbordar e clique direito deles> Formatar células ... > guia Alinhamento > alinhamento horizontal > Preencher

O problema com esse método é que isso realmente preencherá as células repetindo seu conteúdo quando for curto o suficiente para caber na célula várias vezes. Veja a captura de tela abaixo para saber o que isso significa. (Observe que B7é preenchido com 'texto breve'.)

Captura de tela mostrando o comportamento diferente do alinhamento de texto por padrão e preenchimento

Parece que você ficará preso às soluções alternativas da postagem de Benedikt

Observe que você também pode preencher as células adjacentes com caracteres de marca ( ') usando o primeiro método muito inteligente de Benedikt . Dessa forma, você não precisa ocultar nada, evitar o estouro de células e, se você copiar as células como texto (digamos, para o bloco de notas), ainda receberá texto vazio e não espaços ou carrapatos.


2
Então, aceitei sua sugestão de seguir o método de Benedikt para preencher os vazios com 'caracteres. Agora eu não sei se devo aprovar sua resposta, ou a dele, ou o quê! :-p
Dan Henderson

Estou ainda mais confuso. Não vejo nenhuma sugestão para usar 'na resposta de Benedikt, inclusive em edições antigas! Eu votei nos dois, por via das
dúvidas

11
@ user568458: Minha nota foi na verdade uma variação da resposta de Benedikt. Você pode preencher as células com, em ' vez de preenchê-las, N/Acomo Benedikt sugeriu. Acabei de achar o método de Benedikt de preencher todas as células em branco com um valor arbitrário muito convincente.
Marcus Mangelsdorf

11
O preenchimento fará com que os números fiquem alinhados à esquerda também.
posfan12

Que ... incrivelmente estúpido. (Excel, não esta resposta.)
TJ Crowder

26

Aqui está como eu faço isso.

  1. Opção 1: Preencha todas as células vazias com um "N / A" e use Formatação Condicional para tornar o texto invisível.
  2. Ou Opção 2: preencha todas as células vazias com 0 e use uma configuração do Excel para ocultar valores zero.

Preenchendo todas as células vazias: (testado em um Mac)

  • Editar → Ir para ... → Especial ... (No Windows: Página inicial → Edição → Localizar e selecionar → Ir para especial ...)
  • Selecione "espaços em branco" e clique em OK.
  • Todas as células em branco estão selecionadas agora. Não clique em nada.
  • Digite "N / A" ou 0 e pressione Ctrl+ Enter . Isso irá inserir o valor em todas as células selecionadas.

Formatação condicional para ocultar "N / A"

  • Formatar → Formatação condicional.
  • Crie uma nova regra.
  • Estilo: Clássico e Use uma fórmula para determinar quais células serão formatadas.
  • Fórmula: =A1="N/A"
  • Formato com: Formato personalizado: Cor da fonte branca, sem preenchimento.

Ocultar zeros

  • Excel → Configurações → Visualizar.
  • Desmarque "Mostrar valores zero".

_______________
  Isso é Ctrl+ Enter, não Ctrl+ Shift+Enter .


13

Tente digitar a fórmula = "" (que são duas aspas duplas) na célula adjacente onde você não deseja ver o estouro. Isso é avaliado como "nulo", que não exibe nada e não afeta a matemática.


11
Combinado com o post de Benedikt, acredito que esta seja uma das soluções mais fáceis, pois você não precisa esconder nada.
26418 Matt

Isso funcionou melhor para mim.
Peter Peter

Se afeta a função estatística COUNTA, que conta o número de células em um intervalo que não está vazio . Uma célula que exibe uma cadeia de comprimento zero como resultado de uma fórmula não está vazia e será contada.
ProfoundlyOblivious

4

Use o alinhamento de texto horizontal "Preencher" para a célula. Você pode encontrá-lo no mesmo local que outras opções de alinhamento que devem resolver seu problema

Preencher alinhamento de texto


4
Isso não foi coberto pela resposta de Marcus Mangelsdorf ?
Stevoisiak

9
Observe também que Marcus explica um problema grave com esse método - que, se o conteúdo da célula for suficientemente curto, eles serão duplicados. Então "A" se tornaria "AAAAAAAA".
Blackwood

Bom, obrigado. Clique com o botão direito do mouse nas células para reformatar, escolha "Formatar células" e faça o resto como orientação. Funcionou.
Catbuilts

4

Expandindo a solução de usar 'para bloquear o derramamento de texto do Excel para a direita em células em branco adjacentes, às vezes você não deseja modificar / corromper sua coluna de dados inserindo esse valor nela.

Em vez de inserir os 'valores de dados reais, você pode criar uma nova coluna vertical dedicada para esse fim, totalmente preenchida com 'caracteres até o fim.

1. Coluna de barreira

insira a descrição da imagem aqui

2. Insira a coluna "barreira" à esquerda da (s) coluna (s) que deseja proteger.

insira a descrição da imagem aqui

3. Recolha as colunas de barreira definindo a largura da coluna como um valor pequeno

Defina a largura da coluna para um valor como .1, ou mantenha as colunas de barreira mais largas para atuar como um espaço em branco de margem ou entre colunas.

insira a descrição da imagem aqui

Observe que você deve definir uma largura maior que zero; definir a largura da coluna da barreira vertical como zero reverterá para o comportamento indesejado da célula excedente.

4. Voila!


1

No Excel, ajuste a coluna para a largura necessária, ative a distorção de palavra nessa coluna (o que aumentará a altura de todas as linhas) e, finalmente, selecione todas as linhas e ajuste as alturas de linha para a altura desejada. Voila! Agora você tem texto nas células que não transbordam para as células adjacentes.

(Nota: eu encontrei e publiquei como um comentário na resposta selecionada, mas também como uma resposta, será mais fácil de encontrar para outras pessoas.)


11
O segundo parágrafo da pergunta: "Eu sei que posso evitar isso ativando" quebra de linha "e ajustando a altura da linha. Mas não é isso que eu quero".
Fixer1234 24/06

0

Na mesma linha de raciocínio de que o Planilhas Google pode não ser para todos , essa macro pode não ser para todos, mas pode ser para alguém .

Ele percorre o intervalo selecionado e substitui as células que transbordam por texto truncado.

Sinalizadores determina se:

  • o texto incorreto é copiado para o mesmo endereço relativo em uma nova planilha ou se for descartado.

  • o texto truncado é codificado ou vinculado via fórmula da planilha =LEFT()

  • o texto truncado está vinculado à seqüência completa na nova planilha.

O padrão é reter dados e usar os dois links.

Option Explicit

Sub LinkTruncatedCells()
    Dim rng As Range: Set rng = Selection
    Dim preserveValues As Boolean: preserveValues = True
    Dim linkAsFormula As Boolean: linkAsFormula = True
    Dim linkAsHyperlink As Boolean: linkAsHyperlink = True
    Dim w As Single
    Dim c As Range
    Dim r As Range
    Dim t As Long
    Dim l As Long
    Dim s As String
    Dim ws As Worksheet
    Dim ns As Worksheet
    Application.ScreenUpdating = False
    Set ws = rng.Parent
    For Each c In rng.Columns
        w = c.ColumnWidth
        t = 0
        l = 0
        For Each r In c.Rows
            If Len(r) > l Then
                s = r
                If CBool(l) Then r = Left(s, l)
                Do
                    r.Columns.AutoFit
                    If r.ColumnWidth > w And Len(s) > t Then
                        t = t + 1
                        r = Left(s, Len(s) - t)
                        l = Len(r)
                    End If
                Loop Until t = Len(s) Or r.ColumnWidth <= w
                r.ColumnWidth = w
                If r <> s And preserveValues Then
                    If ns Is Nothing Then
                        Set ns = ws.Parent.Worksheets.Add(after:=ws)
                    End If
                    ns.Range(r.Address) = s
                    If linkAsFormula Then r.Formula = "=LEFT(" & ns.Name & "!" & r.Address & "," & l & ")"
                    If linkAsHyperlink Then ws.Hyperlinks.Add Anchor:=r, Address:="", SubAddress:= _
                            ns.Range(r.Address).Address(external:=True)
                End If
            End If
        Next r
    Next c
    ws.Activate
    Application.ScreenUpdating = True
End Sub

Nota final: usei-o para projetos pessoais e achei-o confiável, mas salve e faça backup do seu trabalho antes de tentar qualquer macro desconhecida .

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.