Как я могу предотвратить содержание определенных ячеек (или вся строка или столбец) от печати в Excel при сохранении их видимыми на экране, когда я редактирую файл? Идеально я должен смочь сделать это к ячейкам во внутренней части электронной таблицы (т.е. не только крайний правый столбец (столбцы) или нижний ряд (ряды)). Сокрытие строки (строк) или столбца (столбцов) не приемлемо, потому что я должен поддержать размер ячейки, для поддержания полного появления листа.
Я искал способ определить условный формат, это - условное выражение на том, печатает ли Excel в настоящее время, но там, кажется, не подобная вещь. Я вручную устанавливал цвет текста на белый прежде, чем распечатать (и вручную вернуться он впоследствии), но кажется, что должен быть автоволшебный способ сделать это.
Можно подать заявку нормальный (не условное выражение) форматирующий для достижения этого. Выберите ячейку, строку и/или рассматриваемый столбец и перейдите к "Ячейкам Формата", который доступен через ленту ("Домашние" → "Ячейки" → "Формат") или сочетание клавиш Ctrl+1.
На вкладке "Number" выберите Категорию = "Пользовательский", и для "Типа" войдите:
"";"";"";""
или просто
;;;
Это говорит Excel отображать пустую строку, если ячейка содержит положительное число, отрицательное число, нулевой или (нечисловой) текст. Таким образом, любое значение, которое не является ошибкой, будет скрыто на экране и при печати.
То, когда я должен был сделать то, что Вы говорите, что я сделал бы:
Используйте функцию в редакторе кода (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
Ссылки:
Можно "скрыть" все строки, или столбцы путем щелчка правой кнопкой по строке/столбец и выбору "Скрываются". Это будет препятствовать тому, чтобы строка/столбец была распечатана (или отображена). Если у Вас есть несколько строк/столбцы, можно выделить их "щелчком, перетаскивают", если они друг рядом с другом или Ctrl+click, если они не друг рядом с другом. Когда строки/столбцы скрыты, их число/букву не показывают. Для отображения их просто выделяют строки/столбцы с обеих сторон, и "щелчок правой кнопкой" и выбор "Раскрывают".
Я не уверен, можно ли препятствовать тому, чтобы отдельные ячейки печатали кроме изменения цвета шрифта. Вы можете автоматизировать это с условным форматированием.
Помимо скрывающихся столбцов или строк, как предлагается выше. Вы могли бы посмотреть на Пользовательские Представления как на простой способ применить и не применить то, что Вы не хотите показывать.
Например, при печати одного столбца для продавца, другого для склада и другого со всем, можно создать пользовательское представление для каждого и легко переключиться на также.