У Клинтона есть рабочая тетрадь, содержащая более 200 рабочих листов, которые в течение месяца заполняются различными людьми в его компании. В конце месяца ему нужно распечатать эти рабочие листы. Не все рабочие листы содержат данные, и Клинтон хочет распечатать только те рабочие листы, которые содержат данные, чтобы не тратить впустую бумагу. Он задается вопросом, есть ли макрос, который он может использовать для печати только тех листов, которые имеют значение в ячейке G41.

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

Следующий макрос выполняет именно эти операции.

Sub PrintMost()

Dim wks As Worksheet     For Each wks In ActiveWorkbook.Worksheets         If Not IsEmpty(wks.Range("G41")) Then             wks.PrintOut         End If     Next     Set wks = Nothing End Sub

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

_Примечание: _

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

link: / excelribbon-ExcelTipsMacros [Щелкните здесь, чтобы открыть эту специальную страницу в новой вкладке браузера].

ExcelTips — ваш источник экономичного обучения Microsoft Excel.

Этот совет (10819) применим к Microsoft Excel 2007, 2010, 2013, 2016, 2019 и Excel в Office 365. Вы можете найти версию этого совета для старого интерфейса меню Excel здесь:

link: / excel-Printing_Only_Non-Blank_Worksheets [Печать только непустых листов].