2012-11-19 15:11:43 +0000 2012-11-19 15:11:43 +0000
80
80

Excel - предотвратить переполнение ячейки текста в следующей (пустой) ячейке

Если текст в ячейке Excel слишком длинный для отображения в видимой области этой ячейки, а в следующей ячейке справа пустая, Excel позволяет отобразить текст в этой следующей ячейке (и в следующей, и в следующей, при необходимости, ячейке). Я хочу изменить это; я хочу избежать этого переполнения текста.

Я знаю, что могу избежать этого, включив “обертку слов” и регулируя высоту строк. Но это не то, что я хочу.

Я хочу изменить DEFAULT поведение Excel так, чтобы он показывал значение каждой ячейки только в видимой области этой ячейки. Ни переполнения, ни обертки.

Это возможно? (Кстати, я использую Excel 2010).

Ответы (8)

53
53
53
2015-10-22 13:28:31 +0000

Да, вы можете изменить такое поведение, но, скорее всего, вам не нужны побочные эффекты, которые это вызывает.

Ключом к ограничению содержимого ячейки до границ ячейки, независимо от того, содержит ли соседняя ячейка данные, является выравнивание текста Fill. Выберите ячейки, которые не хотите переполнять, и щелкните правой кнопкой мыши на них > Format cells… > Alignment tab > Horizontal alignment > Fill

problem с этим методом заключается в том, что на самом деле fillm ячейки будут заполняться повторением их содержимого, когда оно будет достаточно коротким, чтобы поместиться в ячейку несколько раз. Смотрите снимок экрана ниже, что это значит. (Обратите внимание, что B7 - это filled с ‘коротким текстом’.)

Похоже, что вы застрянете с обходными путями в сообщении Benedikt’s post

Обратите внимание, что вы также можете заполнять соседние ячейки галочками ('), используя первый, очень умный метод Бенедикта. Таким образом, вам не придется ничего скрывать, предотвращать переполнение ячеек, и если вы скопируете ячейки как текст (допустим в блокнот), вы все равно получите пустой текст, а не пробелы или галочки.

27
27
27
2015-07-24 13:00:33 +0000

Вот как я это делаю.

  1. Опция 1: Заполните все пустые ячейки “N/A”, а затем используйте условное форматирование, чтобы сделать текст невидимым.
  2. Или Опция 2: Заполните все пустые ячейки 0 и используйте настройку Excel, чтобы скрыть нулевые значения.

Заполнение всех пустых ячеек: (проверено на Mac)

  • Правка → Перейти к…. → Специальные … (На Windows: Главная → Правка → Поиск и выбор → Перейти к…)
  • Выберите “Пустые” и нажмите OK.
  • Теперь выбраны все пустые ячейки. Ничего не нажимайте.
  • Введите “N/A” или 0 и нажмите Ctrl+Enter†. Это вставит значение в all выбранных ячеек.

  • Скрыть “N/A ”**

  • Формат → Условное форматирование.

  • Создать новое правило.

  • Стиль: Классика, и Использовать формулу для определения, какие ячейки форматировать.

  • Формула: =A1="N/A"

  • Формат с: Пользовательский формат: Цвет шрифта белый, без заливки.

Спрятать нули

  • Excel → Настройки → Просмотр.
  • Снимите галочку “Показать нулевые значения”.

_________ †  Это Ctrl+Enter,not Ctrl +Shift+ Введите.

13
13
13
2017-04-17 12:50:46 +0000

Попробуйте ввести формулу =“” (это две двойные кавычки) в соседней ячейке, где вы не хотите видеть переполнение. Это вычисляется как “ноль”, которая ничего не отображает и не влияет на математику.

7
7
7
2017-12-13 19:27:48 +0000

Это может быть не для всех, но если вы импортируете документ в Google Sheets, эта функциональность поддерживается по умолчанию. В верхней панели меню поддерживаются три типа обёртывания текста. Переполнение, обертка и клип. Вы ищете клип.

В зависимости от требований, это может быть жизнеспособным вариантом для некоторых людей.

4
4
4
2018-11-28 00:26:59 +0000

Расширяя решение использования ' для блокирования Excel вправо проливание текста в соседние пустые ячейки, иногда вы не хотите изменить / испортить столбец данных, вставив это значение там.

Вместо того, чтобы вставлять ' в ваши фактические значения данных, вы можете создать новый выделенный вертикальный столбец для этой цели, полностью заполненный ' символов всю дорогу вниз.

1. Барьерный столбец

2. Вставьте столбец “барьер” слева от столбцов, которые вы хотите защитить.

3. Сложите столбцы барьера, установив их ширину на небольшое значение

Установите ширину столбца на значение, например .1, или оставьте столбцы барьера шире, чтобы они действовали как пробелы между столбцами.

Обратите внимание, что вы должны установить ширину больше нуля; установка вертикальной ширины столбца барьера на ноль вернется к нежелательному поведению переполнения ячеек.

4. Вуаля!

4
4
4
2017-10-31 15:09:07 +0000

Для ячейки используйте выравнивание горизонтального текста “Заполнить”. Вы можете найти его в том же месте, что и другие опции Выравнивания, которые должны решить вашу проблему

.

1
1
1
2019-06-24 08:59:09 +0000

В Excel настройте столбец на нужную ширину, затем включите слово “деформация” на этом столбце (что приведет к увеличению высоты всех рядов), а затем, наконец, выберите все ряды и настройте высоту рядов на нужную высоту. Вуаля! Теперь у вас есть текст в ячейках, который не переполняет соседние ячейки.

(Примечание: я нашел это и разместил его в качестве комментария в выбранном ответе, но также разместил его в качестве ответа, так что его будет проще найти для других).

0
0
0
2019-09-23 04:17:44 +0000

В той же строке мышления, что Google Sheets может быть не для всех, этот макрос может быть не для всех, но он may быть для кого-то.

Он проходит через выбранный диапазон и заменяет переполненные ячейки усеченным текстом.

Флаги определяют, если:

  • оскорбительный текст копируется по тому же относительному адресу в новом рабочем листе, или если он отбрасывается.

  • усеченный текст жестко закодирован или связаны через формулу рабочего листа =LEFT()

  • усеченный текст гиперссылка на всю строку в нем новый лист.

По умолчанию, чтобы сохранить данные и использовать обе ссылки.

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

Заключительное примечание: Я использовал его для личных проектов и нашел его надежным, но, пожалуйста, сохраните и создавайте резервную копию вашей работы, прежде чем пытаться любой незнакомый макрос.

Похожие вопросы

6
13
9
7
10