Черно-белая и цветная печать (Microsoft Excel)
У Кена есть рабочая тетрадь, содержащая 30 листов. Он хотел бы напечатать листы с 1 по 29 в черно-белом режиме и лист 30 в цвете. Он задается вопросом, есть ли способ распечатать все рабочие листы сразу и указать, что конкретный рабочий лист должен печататься только в цвете.
Проще всего это сделать с помощью макроса. Все, что нужно, — это установить свойство .BlackAndWhite для каждого листа непосредственно перед его печатью.
Например, рассмотрим следующий простой макрос:
Sub PrintSingleColorSheet() Dim w As Worksheet Dim S As Integer ' Set worksheet to be in color ' (All others will print in B/W) S = 30 For Each w In Worksheets w.PageSetup.BlackAndWhite = True If w.Index = S Then w.PageSetup.BlackAndWhite = False End If w.PrintOut Next w End Sub
Макрос хранит в переменной S порядковый номер листа, который вы хотите цветным. (В данном случае порядковый номер 30.) Затем каждый рабочий лист проходит по шагам и для свойства .BlackAndWhite устанавливается значение True. Если, однако, свойство .Index для рабочего листа соответствует значению, хранящемуся в S, тогда для свойства .BlackAndWhite установлено значение False, что означает, что оно будет печататься в цвете. Затем распечатка отправляется на принтер по умолчанию.
Вы могли бы, если хотите, поработать с макросом, то есть вы могли бы попросить пользователя спросить, какой рабочий лист печатать в цвете:
Sub PrintSingleColorSheet() Dim w As Worksheet Dim S As Integer Dim sTemp As String Dim sMsg As String sMsg = "There are " & Worksheets.Count & " worksheets in this " sMsg = sMsg & "workbook. Please enter the number of the single " sMsg = sMsg & "worksheet you want to print in color. (All " sMsg = sMsg & "others will print in black and white.)" sTemp = InputBox(sMsg) S = Val(sTemp) If S > 0 And S <= Worksheets.Count Then For Each w In Worksheets w.PageSetup.BlackAndWhite = True If w.Index = S Then w.PageSetup.BlackAndWhite = False End If w.PrintOut Next w Else sMsg = "You entered a value that is out of range." If sTemp <> "" Then MsgBox sMsg End If End If End Sub
Эта версия макроса просит пользователя ввести номер рабочего листа. Если введенное значение выходит за пределы допустимого диапазона, отображается сообщение об ошибке, и макрос ничего не печатает. Если пользователь нажимает кнопку «Отмена» или оставляет поле ввода пустым, макрос просто закрывается, ничего не печатая.
ExcelTips — ваш источник экономичного обучения Microsoft Excel.
Этот совет (13738) применим к Microsoft Excel 2007, 2010, 2013, 2016, 2019 и Excel в Office 365.