14

Как я могу предотвратить печать содержимого отдельных ячеек (или всей строки или столбца) в Excel, оставляя их видимыми на экране при редактировании файла? В идеале я должен быть в состоянии сделать это с ячейками во внутренней таблице (то есть не только с самым правым столбцом (столбцами) или нижним рядом (строками)). Скрытие строки (строк) или столбца (столбцов) недопустимо, поскольку мне необходимо поддерживать размер ячейки, чтобы поддерживать общий вид листа.

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

12 ответов12

12

Если вы используете Office 2010, в разделе «Файл -> Печать -> Параметры страницы -> Лист (вкладка)» необходимо выбрать параметр "Область печати". В моем примере будут напечатаны только столбцы A:J; однако все отображается при просмотре на экране.

Вот как выглядит диалог:

Скриншот
(Нажмите на изображение, чтобы увеличить)

Это также может быть доступно как "Макет страницы" → "Настройка страницы" → (угловая кнопка) → "Настройка страницы" → "Лист":

    

7

Вы можете применить нормальное (не условное) форматирование для достижения этой цели. Выберите нужную ячейку, строку и / или столбец и перейдите в "Формат ячеек", который доступен через ленту ("Главная" → "Ячейки" → "Формат") или сочетания клавиш Ctrl+1.

На вкладке "Число" выберите Category = "Custom" и для "Type" введите:

"";"";"";""

или просто

;;;

Это указывает Excel отображать пустую строку, если ячейка содержит положительное число, отрицательное число, ноль или (не числовой) текст. Поэтому любое значение, которое не является ошибкой, будет скрыто на экране и при печати.

6

Это решение не требует, чтобы вы предпринимали специальные действия до и после каждого раза, когда вам нужно распечатать файл.  Он основан на идее использования «области печати», как это предложили Теренс и Дон Ливезей.  Поместите ячейки, которые вы не хотите печатать, за пределы области печати.  Если это достаточно хорошо для вас, все готово.

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

  • Вставьте «форму».  (Прямоугольник работает лучше всего.)  Поместите его в ячейку, где вы хотите, чтобы данные появлялись.  Отформатируйте это визуально, как вы хотите.  Лучше всего не иметь границы.  Установите цвет заливки на любой желаемый для цвета фона или не используйте заливку, чтобы позволить цвету заливки базовой ячейки просвечивать (и сделать саму форму невидимой).
  • Сконфигурируйте форму, чтобы отобразить содержимое нужной ячейки, выбрав форму, а затем напечатав ссылку (например, =D15) в строке формул в верхней части.  Не просто печатать в форме; если вы это сделаете, формула (=D15) будет отображаться буквально.
  • Щелкните правой кнопкой мыши по фигуре и выберите «Форматировать фигуру».  В разделе «Свойства» вы можете выбрать, будет ли фигура напечатана или нет (сняв флажок «Печатать объект»).  (В Excel 2013 это находится в разделе «Параметры формы» → «Размер и свойства» → «Свойства».)
2

Когда мне нужно было сделать то, что вы говорите, я бы сделал следующее:

Используйте функцию в редакторе кода (VBA):

Private Sub Workbook_BeforePrint(Cancel As Boolean)

Чтобы скрыть столбцы или строки, сделайте распечатку, а затем раскройте их.

Пример:

Private Sub Workbook_BeforePrint(Cancel As Boolean)
    If ActiveSheet.Name = "Sheet1" Then
        Cancel = True
        Application.EnableEvents = False
        Application.ScreenUpdating = False
        With ActiveSheet
            .Rows("10:15").EntireRow.Hidden = True
            .PrintOut
            .Rows("10:15").EntireRow.Hidden = False
        End With
        Application.EnableEvents = True
        Application.ScreenUpdating = True
    End If
End Sub

Или измените соответствующую часть, чтобы скрыть столбцы (этот пример скрывает столбцы B и D):

        With ActiveSheet
            .Range("B1,D1").EntireColumn.Hidden = True
            .PrintOut
            .Range("B1,D1").EntireColumn.Hidden = False
        End With

Или скрыть все строки с пустой ячейкой в столбце A:

        With ActiveSheet
            On Error Resume Next
            .Columns("A").SpecialCells(xlCellTypeBlanks).EntireRow.Hidden = True
            .PrintOut
            .Columns("A").SpecialCells(xlCellTypeBlanks).EntireRow.Hidden = False
            On Error GoTo 0
        End With

Ссылки:

2

Я решил ту же проблему, создав отдельный лист и скопировав там ссылку на информацию. Для этого выделите весь исходный лист и скопируйте его (Ctrl+C). Перейдите на новый лист и щелкните правой кнопкой мыши первую ячейку. Выберите значок ссылки в параметрах вставки. Все вставленные данные будут неформатированы, поэтому вам придется исправить это. Пустые ячейки будут содержать нули. Это можно исправить, перейдя в "Файл" → "Параметры" → "Дополнительно" и сняв флажок "Показывать ноль в ячейках с нулевым значением".

Теперь вы можете удалить любые ячейки, строки или столбцы, которые вы не хотели бы видеть на распечатках. Лист печати будет обновляться по мере обновления исходного листа.

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

1

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

  • Настройка области печати: это может работать в зависимости от макета листа, но не слишком хорошо обрабатывает несмежные области печати. Или, возможно, он справляется с этим очень хорошо, но выбранный подход не работает в моем случае. Например, если у меня есть электронная таблица со столбцами AE и я хочу скрыть столбцы B и D при печати, тогда каждый напечатанный столбец {A, C, E} помещается на отдельную страницу. Не совсем то, что я хотел.

  • Установка текста белым на белый: может работать в некоторых случаях, но ОСТОРОЖНО, это не предотвращает утечку скрытых данных. Если вы пытаетесь скрыть конфиденциальную информацию, знайте, что при печати в PDF данные все равно будут присутствовать в файле PDF. Даже при том, что это белое на белом, это все еще там, и может быть скопировано / вставлено из файла PDF.

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

1

Вы можете "спрятать" целые строки или столбцы, щелкнув правой кнопкой мыши строку / столбец и выбрав "Скрыть". Это предотвратит печать (или отображение) строки / столбца. Если у вас есть несколько строк / столбцов, вы можете выделить их "перетаскиванием по щелчку", если они находятся рядом друг с другом, или по нажатию Ctrl+ щелчок, если они не расположены рядом друг с другом. Когда строки / столбцы скрыты, их номер / буква не отображаются. Чтобы отобразить их, просто выделите строки / столбцы с обеих сторон, щелкните правой кнопкой мыши и выберите "Показать".

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

0

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

Например, если вы печатаете один столбец для продавца, другой для склада и еще один со всем, вы можете создать собственное представление для каждого и легко переключиться на любой.

0

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

Мой процесс с тех пор состоит из наличия "рабочей" (исходной) вкладки с сообщением "не трогать" коллегам, работающим в моем файле, а также "печатной" (целевой) вкладки, которая рисуется непосредственно с рабочей вкладки без приходится беспокоиться о том, чтобы очистить, спрятать или забыть положить обратно.

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

Кроме того, сделайте резервную копию ваших файлов, хе-хе.

ура

0

Принимая во внимание предыдущий совет, что белый шрифт может быть виден при печати PDF, я использую следующую технику:

Используйте ячейку за пределами области печати с позицией "1" или "0".

Затем я ссылаюсь на это поле в условном форматировании всех ячеек, которые не нужно печатать.

Если A1=0 тогда установите формат на белый шрифт.

Если A1=1 тогда установите формат на черный или любой другой цвет.

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

0

Другой простой способ - временно очистить содержимое ячейки, выделив выделенные ячейки - щелкните правой кнопкой мыши и выберите "Очистить содержимое".

Теперь вы можете распечатать, а затем нажать кнопку «Отменить», и все вернется к норме.

0

Чтобы предотвратить печать строки или столбца, вы можете скрыть их от просмотра:

  1. Выберите строку (и)/ столбец (и)
  2. Щелкните по нему правой кнопкой мыши
  3. Выберите "Скрыть" в контекстном меню.

Альтернативный способ - создать группу, а затем свернуть ее:

  1. Выберите строку (и)/ столб (ы)
  2. Выберите вкладку « Данные » (на ленте) -> кнопку « Группа» в группе « Структура ».

Теперь вы можете быстро свернуть / развернуть строку (и) / столбец (и) для редактирования / печати.

Также взгляните на видео, описывающее несколько способов скрытия ячеек (в том числе описанных выше).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .