Как препятствовать тому, чтобы ячейки печатали в Excel

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

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

15
задан 22.11.2015, 10:41

4 ответа

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

На вкладке "Number" выберите Категорию = "Пользовательский", и для "Типа" войдите:

"";"";"";""

или просто

;;;

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

7
ответ дан 07.12.2019, 11:01

То, когда я должен был сделать то, что Вы говорите, что я сделал бы:

Используйте функцию в редакторе кода (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
ответ дан 07.12.2019, 11:01

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

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

1
ответ дан 07.12.2019, 11:01

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

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

0
ответ дан 07.12.2019, 11:01

Теги

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