KutoolsforOffice — Одно решение — пять мощных инструментов.Меньше усилий — больше результата.

Как печатать в Excel только те листы, которые соответствуют определённым значениям в ячейках?

АвторSunДата изменения

Пробовали ли вы когда-нибудь печатать определённые листы в зависимости от значения ячейки? В этой статье я приведу несколько примеров, которые помогут решить эту задачу. Если вам это интересно — продолжайте читать!

Печать листа на основе значения ячейки с помощью VBA

Печать листа на основе значения соседней ячейки с помощью VBA


Печать листа на основе значения ячейки с помощью VBA

Предположим, у вас есть два листа, и вы хотите напечатать Лист1, Лист2 или оба листа — в зависимости от значения ячейки A1 на Листе1. Выполните следующие действия:

В этом случае введите 1, чтобы напечатать первый лист, 2 — второй лист или 3 — оба листа.

1. Введите в ячейку A1 первого листа значение 1, 2 или 3 — в зависимости от необходимости — и нажмите клавиши Alt + F11, чтобы открыть окно Microsoft Visual Basic для приложений.

2. Нажмите Вставка > Модуль и вставьте приведённый ниже код в окно Модуля. См. скриншот:
Снимок экрана с добавлением модуля в окне VBA

VBA: печать листа на основе значения ячейки

Sub PrintStuff()
'UpdayebyExtendoffice20180811
    Dim xRgVal As Variant
    Dim xSheets As Sheets
    Set xSheets = ActiveWorkbook.Worksheets
    xRgVal = xSheets(1).Range("A1").Value
    If (IsNumeric(xRgVal)) And (Len(xRgVal) = 1) Then
        Select Case xRgVal
            Case 1
                xSheets(1).PrintOut
            Case 2
                xSheets(2).PrintOut
            Case 3
                xSheets(1).PrintOut
                xSheets(2).PrintOut
            Case Else
                MsgBox "Enter1, 2 or 3 into A1 (1 print Sheet1 2 print Sheet2 3 print Sheet1 and Sheet2 ", , "KuTools For Excel"
                Exit Sub
            End Select
    Else
        Exit Sub
    End If
End Sub

Снимок экрана с кодом VBA, вставленным в окно модуля

3. Нажмите клавишу F5, чтобы сразу напечатать лист(ы).


Печать листа на основе значения соседней ячейки с помощью VBA

Если в книге содержится несколько листов и вы хотите напечатать один или несколько из них на основе значений ячеек в этой книге, выполните следующие действия:

1. Создайте новый лист с именем Управляющий лист в используемой книге и перечислите все имена листов в столбце A (включая или исключая управляющий лист — по вашему усмотрению). См. скриншот:
Снимок экрана, показывающий «Управляющий лист» со списком имен листов в столбце A в Excel

2. Введите «print» в ячейку рядом с именем листа, если хотите его напечатать. См. скриншот ниже.
Снимок экрана «Управляющего листа» со значениями «печать», введенными в соседние ячейки рядом с именами листов

3. Нажмите клавиши Alt + F11, чтобы открыть окно Microsoft Visual Basic для приложений, затем выберите Вставка > Модуль. См. скриншот:
Снимок экрана с добавлением модуля в окне VBA

4. Вставьте приведённый ниже код в модуль и нажмите клавишу F5, чтобы запустить его.

VBA: печать на основе значения соседней ячейки

Sub CreateControlSheet()
'UpdatebyExtendoffice20170811
    Dim i As Integer
    Dim xCSheetRow As Integer
    Dim xSName As String
    Dim xCSheet As Variant
    Dim xRgVal As String
    On Error Resume Next
    xSName = "Control Sheet"
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    Set xCSheet = ActiveWorkbook.Worksheets(xSName)
    xCSheetRow = xCSheet.Range("B65536").End(xlUp).Row
    For i = 2 To xCSheetRow
        xRgVal = xCSheet.Range("B" & i).Value
        If xRgVal = "Print" Or xRgVal = "print" Then
            If xCSheet.Range("A" & i).Value <> "" Then
                ActiveWorkbook.Worksheets(xCSheet.Range("A" & i).Value).PrintOut
            End If
        End If
    Next
    xCSheet.Delete
    ActiveWorkbook.Worksheets.Add
    ActiveSheet.Name = "Control Sheet"
    Range("A1").Select
    ActiveCell.FormulaR1C1 = "Sheet Name"
    Range("B1").Select
    ActiveCell.FormulaR1C1 = "Print?"
    For i = 1 To ActiveWorkbook.Worksheets.Count
        Range("A" & i + 1).Value = ActiveWorkbook.Worksheets(i).Name
    Next
    Cells.Columns.AutoFit
    Application.DisplayAlerts = True
    Application.ScreenUpdating = True
End Sub

Снимок экрана с кодом VBA, вставленным в окно модуля

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

Совет: Если у вас установлен Kutools для Excel, воспользуйтесь его утилитой Создать связующую таблицу, чтобы быстро создать список всех имён листов на новом листе со ссылками для перехода.

Снимок экрана Управляющего листа со ссылками на имена листов, по которым можно щелкнуть после использования Kutools

Kutools для Excel— раскройте весь потенциал Excel с помощью более чем 300 незаменимых инструментов, которые ускоряют и упрощают вашу работу, а также воспользуйтесь возможностями ИИ для более разумной обработки данных и повышения продуктивности.Получить сейчас

Лучшие инструменты повышения продуктивности в Office

🤖KUTOOLS AI Помощник: Преобразуйте Анализ данных с помощью:Интеллектуального выполнения   |  Генерации кода|  Создания пользовательские формулы  |  Анализа данных и построения диаграмм|  Вызова Расширенные функции
Популярные функции:Поиск, выделение или Отметить дубликаты   |  Удалить пустые строки   |  Объединить столбцы или ячеек без потери данных   |  Округление без использования формул
Супер ПОИСК:VLookup по нескольким критериям  |  VLookup по нескольким значениям  |   VLookup по нескольким листам   |   Распознавание нечетких соответствий
Расширенный раскрывающийся список:Быстрое создание выпадающего списка   |  Зависимый выпадающий список   |  Выпадающий список с множественным выбором
Управление столбцами:Добавление заданного количества столбцов|Перемещение столбцов|Переключение видимости скрытых столбцов|Сравнение диапазонов и столбцов
Избранные функции:Сетка фокусировки   |  Просмотр дизайна   |Улучшенная строка формулы   | Управление рабочими книгами и листами   |  Библиотека ресурсов(автотекст)|  Выбор даты   |  Объединить листы  |  Шифрование/Расшифровать ячейки   | Отправка писем по списку   |  Супер фильтр   |   Специальный фильтр(Фильтр ячеек с жирным шрифтом/курсив/зачёркивание…) …
Лучшие наборы инструментов 15:12 Текстовыеинструменты(Добавить текст,Удалить определенные символы, …)|   50+Типыдиаграмм(Диаграмма Ганта, …)|   40+ Практические формулы(Рассчитать возраст на основе даты рождения, …)|   19 Инструментывставки(Вставить QR-код,Вставка изображения по пути, …)|   12 Инструментыпреобразования(Преобразовать в слова,Конвертация валют, …)|   7 Объединить и разделитьИнструменты(Расширенное объединение строк,Разделить ячейки, …)|… и многое другое
Используйте Kutools на предпочитаемом языке — поддержка английского, испанского, немецкого, французского, китайского и ещё 40+ языков!

Раскройте весь потенциал Excel с помощью Kutools для Excel и ощутите эффективность как никогда раньше.Kutools для Excel предлагает более 300 расширенных функций для повышения продуктивности и Экономия времени.Нажмите здесь, чтобы получить нужную Вам функцию…


Office Tab добавляет в Office вкладки и значительно упрощает Вашу работу

  • Включите редактирование и чтение во вкладках в Word, Excel, PowerPoint, Publisher, Access, Visio и Project.
  • Открывайте и создавайте несколько документов во вкладках одного окна — вместо того чтобы использовать отдельные окна.
  • Повышает вашу продуктивность на 50 % и экономит сотни кликов мышью каждый день!

Все надстройки Kutools — один установщик

Kutools for Office — набор надстроек для Excel, Word, Outlook и PowerPoint, а также Office Tab Pro, идеально подходящий командам, работающим с разными приложениями Office.

ExcelWordOutlookTabsPowerPoint
  • Единый комплект— надстройки для Excel, Word, Outlook и PowerPoint + Office Tab Pro
  • Один установщик, одна лицензия— настройка занимает считанные минуты (готово для MSI)
  • Лучше работать вместе— оптимизированная продуктивность во всех приложениях Office
  • 30-дневная полнофункциональная пробная версия— без регистрации и кредитной карты
  • Лучшее соотношение цены и качества— экономия по сравнению с покупкой отдельных надстроек