Excel: impedisce al testo della cella di traboccare nella cella successiva (vuota)


72

Quando il testo in una cella di Excel è troppo lungo per essere visualizzato nell'area visibile di quella cella e la cella successiva a destra è vuota, Excel consente di visualizzare il testo nella cella successiva (e nella successiva, e il poi, se necessario). Voglio cambiare questo; Voglio evitare questo overflow del testo.

So di poterlo evitare abilitando "a capo automatico" e regolando l'altezza della riga. Ma non è quello che voglio.

Voglio cambiare il comportamento DEFAULT di Excel in modo che mostri il valore di ogni cella solo nell'area visibile di quella cella. Nessun overflow, nessuna parola a capo.

È possibile? (Sto usando Excel 2010, comunque.)


5
se si scopre che non è possibile, puoi usare un carattere spaziale per le celle vuote ...
Aprillion

abbastanza interessante - non conosco altro che usare WordWrap, Font-AutoSize o caratteri nelle altre celle.
Jook,

1
Puoi troncare i caratteri extra selezionando tutte le celle, andando Data / Text to Columnse specificando un'interruzione dopo il maggior numero di caratteri che possono entrare in una cella senza avvolgere / traboccare. Ricorda di saltare la colonna aggiuntiva creata che contiene i caratteri extra!
Karan,

Immagino che questo risponderebbe alla tua domanda: superuser.com/a/878605/497156
Sulaiman,

"So di poterlo evitare abilitando" a capo automatico "e regolando l'altezza della riga." Grazie! Questa è la mia soluzione selezionata.
Ochado,

Risposte:


4

Potrebbe non essere un'opzione per tutti, ma se importi il ​​documento in Fogli Google, questa funzionalità è supportata per impostazione predefinita. Nella barra dei menu in alto, sono supportati tre tipi di avvolgimento del testo. Overflow, avvolgimento e clip. Stai cercando una clip.

A seconda dei requisiti, questa potrebbe essere un'opzione praticabile per alcune persone.


5
Quindi la tua risposta è in realtà dire rilasciare Excel e andare con i fogli di Google.
Solar Mike,

Come ho detto, non è un'opzione per tutti, ma potrebbe essere una buona soluzione per alcuni.
Yellavon,

@SolarMike - grazie. Ero confuso, ma il tuo commento ordina questa risposta. Penso che yellavon supponga che la gente si opporrà alla sua risposta e, in quanto tale, è difensiva, prima di spiegare effettivamente la risposta. Il tuo commento è più conciso rispetto all'effettiva risposta postata.
barrypicker,

In realtà questa sembra essere la risposta più vicina a una soluzione reale. Ho scoperto che in Excel puoi fare qualcosa di simile a questo. Regola la colonna alla larghezza richiesta, quindi abilita il word-warp sulla colonna (che farà aumentare tutte le altezze di riga) e infine seleziona tutte le righe e regola l'altezza delle righe all'altezza desiderata. Ecco! Ora hai testo nelle celle che non traboccano alle celle adiacenti. (@ Yellavon: accetterò la tua risposta, potresti voler aggiornarla per contenere questo comportamento di EXcel in modo che le persone possano accedere alla soluzione più facilmente)
e-mre

49

Sì, puoi cambiare questo comportamento, ma probabilmente non vorrai gli effetti collaterali che questo provoca.

La chiave per limitare il contenuto della cella ai limiti della cella indipendentemente dal fatto che la cella adiacente contenga dati è l'allineamento del testo Fill. Selezionare le celle che non si desidera per troppo pieno e fare clic destro li> Formato cella ... > scheda Allineamento > Allineamento orizzontale > Fill

Il problema con questo metodo è che questo riempirà effettivamente le celle ripetendo il loro contenuto quando è abbastanza corto da adattarsi alla cella più volte. Vedi sotto screenshot per cosa significa. (Nota che B7è riempito con 'testo breve'.)

Schermata che mostra i diversi comportamenti di allineamento del testo per impostazione predefinita e riempimento

Sembra che rimarrai bloccato con le soluzioni alternative nel post di Benedikt

Nota che puoi anche riempire le celle adiacenti con i segni di spunta ( ') usando il primo metodo molto intelligente di Benedikt . In questo modo non devi nascondere nulla, impedire l'overflow delle celle e se copi le celle come testo (diciamo al blocco note) otterrai comunque testo vuoto e non spazi o segni di spunta.


2
Quindi ho preso il tuo suggerimento di seguire il metodo di Benedikt per riempire i vuoti di 'personaggi. Ora non so se dovrei votare la tua risposta, o la sua, o cosa! :-p
Dan Henderson,

Sono ancora più confuso. Non vedo alcun suggerimento da usare 'nella risposta di Benedikt, incluso nelle vecchie modifiche! Ho votato entrambi, nel caso ...
user56reinstatemonica8

1
@ user568458: La mia nota era in realtà una variante della risposta di Benedikt. Potresti riempire le celle ' invece di riempirle N/Acome suggerito da Benedikt. Ho appena trovato molto interessante il metodo di Benedikt per riempire tutte le celle vuote con un valore arbitrario.
Marcus Mangelsdorf,

1
'Riempi' farà sì che anche i numeri vengano allineati a sinistra.
posfan12,

Come ... incredibilmente stupido. (Excel, non questa risposta.)
TJ Crowder

26

Ecco come lo faccio.

  1. Opzione 1: riempire tutte le celle vuote con un "N / A" e quindi utilizzare la formattazione condizionale per rendere invisibile il testo.
  2. Oppure Opzione 2: riempire tutte le celle vuote con 0 e utilizzare un'impostazione di Excel per nascondere i valori zero.

Riempimento di tutte le celle vuote: (testato su un Mac)

  • Modifica → Vai a ... → Speciale ... (Su Windows: Home → Modifica → Trova e seleziona → Vai a Speciale ...)
  • Seleziona "Vuoti" e premi OK.
  • Tutte le celle vuote sono ora selezionate. Non fare clic su nulla.
  • Digita "N / A" o 0, quindi premi Ctrl+ Enter . Ciò inserirà il valore in tutte le celle selezionate.

Formattazione condizionale per nascondere "N / A"

  • Formato → Formattazione condizionale.
  • Crea una nuova regola.
  • Stile: classico e usa una formula per determinare quali celle formattare.
  • Formula: =A1="N/A"
  • Formato con: Formato personalizzato: Colore carattere bianco, nessun riempimento.

Nascondi zeri

  • Excel → Impostazioni → Visualizza.
  • Deseleziona "Mostra valori zero".

_______________
  Questo è Ctrl+ Enter, non Ctrl+ Shift+Enter .


13

Prova a inserire la formula = "" (ovvero due virgolette doppie) nella cella adiacente dove non vuoi vedere l'overflow. Viene valutato come "null" che non visualizza nulla e non influisce sulla matematica.


1
In combinazione con il post di Benedikt, credo che questa sia una delle soluzioni più semplici in quanto non devi nascondere nulla.
Matt,

Questo ha funzionato meglio per me.
Peter,

Se influisce sulla funzione statistica COUNTA, che conta il numero di celle in un intervallo non vuoto . Una cella che mostra una stringa di lunghezza zero come risultato di una formula non è vuota e verrà conteggiata.
DeeplyOblivious,

4

Utilizzare l'allineamento del testo orizzontale "Riempi" per la cella. Puoi trovarlo nello stesso posto di altre opzioni di allineamento che dovrebbero risolvere il tuo problema

Riempi allineamento testo


4
Questo non è stato coperto dalla risposta di Marcus Mangelsdorf ?
Stevoisiak,

9
Si noti inoltre che Marcus spiega un grave problema con questo metodo: che se i contenuti della cella sono abbastanza corti, verranno duplicati. Quindi "A" diventerebbe "AAAAAAAA".
Blackwood,

Bene grazie. Fare clic con il tasto destro del mouse sulle celle per riformattarle, selezionare "Formatta celle" e fare il resto come guida. Ha funzionato.
Catbuilts

4

Espandendo la soluzione dell'uso 'per bloccare la fuoriuscita di testo di Excel in celle vuote adiacenti, a volte non si desidera modificare / corrompere la colonna di dati inserendo quel valore in essa.

Invece di inserire i 'valori dei dati effettivi, è possibile creare una nuova colonna verticale dedicata a questo scopo, piena di 'caratteri fino in fondo.

1. Colonna di barriera

inserisci qui la descrizione dell'immagine

2. Inserire la colonna "barriera" a sinistra delle colonne che si desidera proteggere.

inserisci qui la descrizione dell'immagine

3. Comprimi le colonne della barriera impostando la larghezza della colonna su un valore basso

Imposta la larghezza della colonna su un valore come .1, o in alternativa, mantieni le colonne della barriera più larghe per agire come un margine o uno spazio bianco tra le colonne.

inserisci qui la descrizione dell'immagine

Si noti che è necessario impostare una larghezza maggiore di zero; impostando la larghezza della colonna della barriera verticale su zero, si ripristinerà il comportamento di overflow della cella indesiderato.

4. Voila!


1

In Excel, regola la colonna sulla larghezza richiesta, quindi abilita il word-warp su quella colonna (che causerà un aumento di tutte le altezze di riga) e infine seleziona tutte le righe e regola l'altezza delle righe all'altezza desiderata. Ecco! Ora hai testo nelle celle che non traboccano alle celle adiacenti.

(Nota: l'ho trovato e pubblicato come commento nella risposta selezionata, ma anche pubblicandolo come risposta, quindi sarà più facile da trovare per gli altri.)


1
Il secondo paragrafo della domanda: "So di poterlo evitare abilitando" ritorno a capo automatico "e regolando l'altezza della riga. Ma non è quello che voglio".
fixer1234

0

Nella stessa linea di pensiero che Google Sheets potrebbe non essere adatto a tutti , questa macro potrebbe non essere adatta a tutti ma potrebbe essere adatta a qualcuno .

Attraversa l'intervallo selezionato e sostituisce le celle straripanti con testo troncato.

Le bandiere determinano se:

  • il testo offensivo viene copiato nello stesso indirizzo relativo in un nuovo foglio di lavoro o se viene scartato.

  • il testo troncato è codificato o collegato tramite la formula del foglio di lavoro =LEFT()

  • il testo troncato è collegato ipertestuale all'intera stringa nel nuovo foglio.

L'impostazione predefinita è conservare i dati e utilizzare entrambi i collegamenti.

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 finale: l'ho usato per progetti personali e l'ho trovato affidabile, ma per favore salva ed esegui il backup del tuo lavoro prima di provare qualsiasi macro sconosciuta .

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.