Совет. Другие языки - Google-Translated. Вы можете посетить English версия этой ссылки.
Войти
x
or
x
x
Регистрация
x

or

Как печатать определенные страницы или рабочий лист на основе значения ячейки в Excel?

Вы когда-нибудь пытались распечатать определенную страницу или таблицу на основе значения ячейки в Excel? И как его достичь? Методы в этой статье могут помочь вам в решении этой проблемы.

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

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

Вкладка «Office» Включите редактирование и просмотр с вкладками в Office и упростите свою работу ...
Kutools для Excel решает большинство ваших проблем и повышает производительность на 80%
  • Повторно использовать что-либо: Добавьте наиболее часто используемые или сложные формулы, диаграммы и все остальное в избранное и быстро используйте их в будущем.
  • Больше, чем текстовые функции 20: Извлечь номер из текстовой строки; Извлечь или удалить часть текстов; Преобразование чисел и валют в английские слова ...
  • Инструменты слияния: Несколько рабочих книг и листов в одном; Объединить несколько ячеек / строк / столбцов без потери данных; Объединить повторяющиеся строки и суммы ...
  • Сплит Инструменты: Разбить данные на несколько листов на основе значения; Одна рабочая книга для нескольких файлов Excel, PDF или CSV; От одного столбца до нескольких столбцов ...
  • Вставить Пропуск Скрытые / отфильтрованные строки; Подсчет и сумма по цвету фона; Создать список рассылки и Отправка писем по значению ячейки...
  • Суперфильтр: Создавайте расширенные схемы фильтров и применяйте их к любым листам; Сортировать по неделям, дням, частоте и более; Фильтр жирным шрифтом, формулами, комментариями ...
  • Более чем мощные функции 300; Работает с Office 2007-2019 и 365; Поддерживает все языки; Простота развертывания на вашем предприятии или в организации.

arrow синий правый пузырь Печать определенной страницы на основе значения ячейки с кодом VBA


Например, вы хотите, чтобы определенная страница, такая как страница 1 текущего листа, была напечатана автоматически при вводе номера страницы 1 в ячейку A1 на текущем листе. Для этого вы можете сделать следующее.

1. Выберите ячейку, на которой указан номер страницы, на которой вы хотите напечатать, затем нажмите одновременно клавиши Alt и F11, чтобы открыть окно Microsoft Visual Basic для приложений. Затем нажмите Вставить > модуль.

2. Затем Microsoft Visual Basic для приложений появится окно, скопируйте и вставьте следующий код VBA в Код: окна.

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

Option Explicit
Sub Print_Pages()
Dim xPage As Integer
Dim xYesorNo As Integer
With ActiveCell
    If Not IsEmpty(.Value) And IsNumeric(.Value) Then
        xPage = .Value
    Else: MsgBox "Please specify a cell and enter a page in cell"
        Exit Sub
    End If
End With
xYesorNo = MsgBox("Ready to print page" & xPage & " ", vbYesNo, "Kutools for Excel")
If xYesorNo = vbYes Then
    ActiveSheet.PrintOut from:=xPage, To:=xPage, preview:=True
Else
    Exit Sub
End If
End Sub

3. Нажмите F5 для запуска кода. В появлении Kutools for Excel диалогового окна, нажмите Да для печати определенной страницы или нажмите Нет чтобы выйти из диалогового окна, если вы не хотите печатать. Смотрите скриншот:

Затем откроется окно предварительного просмотра на определенной странице текущего листа, нажмите печать для начала печати.


arrow синий правый пузырь Печать определенной страницы на основе значения ячейки с кодом VBA

Предположим, вы хотите распечатать активный лист, когда значение в ячейке B2 этого листа равно числу 1001. Вы можете достичь этого с помощью следующего кода VBA. Пожалуйста, сделайте следующее.

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

2. Затем Microsoft Visual Basic для приложений появится окно, скопируйте и вставьте следующий код VBA в окно кода.

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

Private Sub Worksheet_Change(ByVal Target As Range)
Dim xCell As Range, xYesorNo As Integer
Set xCell = ActiveSheet.Range("B2")
If Application.Intersect(Target, xCell) Is Nothing Then Exit Sub
    If xCell.Value = 1001 Then
        xYesorNo = MsgBox("Ready to print the specified worksheet? ", vbYesNo, "Kutools for Excel")
        If xYesorNo = vbYes Then
          ActiveSheet.PrintOut
        Else
           Exit Sub
        End If
End If
End Sub

Внимание: Вы можете изменить значение ячейки и ячейки в коде, как вам нужно.

3. Нажмите другой + Q закрыть Microsoft Visual Basic для приложений окна.

При вводе номера 1001 в ячейку B2, Kutools for Excel появится диалоговое окно, нажмите Да для начала печати. Или нажмите Нет чтобы выйти из диалогового окна напрямую без печати. Смотрите скриншот:

Наконечник: Если вы хотите напрямую печатать непересекающиеся страницы, такие как страница 1, 6 и 9 на текущем листе, или печатать только все четные или нечетные страницы, вы можете попробовать Печать заданных страниц утилита pf Kutools for Excel как показано ниже. Вы можете пойти в бесплатно скачать программное обеспечение без ограничений в 60 дней.


arrow синий правый пузырьСтатьи по теме:


Kutools для Excel решает большинство ваших проблем и повышает производительность на 80%

  • Снова использовать: Быстро вставить сложные формулы, графики и все, что вы использовали раньше; Шифрование ячеек с паролем; Создать список рассылки и отправлять электронные письма ...
  • Супер Формула Бар (легко редактировать несколько строк текста и формул); Макет чтения (легко читать и редактировать большое количество ячеек); Вставить в отфильтрованный диапазон...
  • Объединить ячейки / строки / столбцы без потери данных; Содержание сплит-клеток; Объединить дублирующиеся строки / столбцы... предотвратить повторяющиеся клетки; Сравнить диапазоны...
  • Выберите Дубликат или Уникальный Ряды; Выберите пустые строки (все ячейки пусты); Супер найти и нечеткая находка во многих рабочих тетрадях; Случайный выбор ...
  • Точная копия Несколько ячеек без изменения формулы ссылки; Автоматическое создание ссылок на несколько листов; Вставить пули, Флажки и многое другое ...
  • Извлечение текстаДобавить текст, Удалить по позиции, Удалить пространство; Создание и печать промежуточных итогов подкачки; Преобразование содержимого ячеек и комментариев...
  • Суперфильтр (сохранить и применить схемы фильтров к другим листам); Расширенный поиск по месяцам / неделям / дням, частоте и более; Специальный фильтр жирным шрифтом, курсивом ...
  • Объединить рабочие тетради и рабочие листы; Объединение таблиц на основе ключевых столбцов; Разделить данные на несколько листов; Пакетное преобразование xls, xlsx и PDF...
  • Более чем мощные функции 300, Поддерживает Office / Excel 2007-2019 и 365. Поддерживает все языки. Простота развертывания на вашем предприятии или в организации. Полнофункциональная 30-дневная бесплатная пробная версия.
вкладка kte 201905

Вкладка «Office» предоставляет интерфейс с вкладками для Office и упрощает работу

  • Включить редактирование и чтение с вкладками в Word, Excel, PowerPoint, Издатель, Доступ, Visio и Проект.
  • Открывайте и создавайте несколько документов в новых вкладках одного и того же окна, а не в новых окнах.
  • Увеличивает вашу производительность на 50% и уменьшает сотни щелчков мышью для вас каждый день!
нижняя часть офиса
Say something here...
symbols left.
You are guest ( Sign Up? )
or post as a guest, but your post won't be published automatically.
Loading comment... The comment will be refreshed after 00:00.
  • To post as a guest, your comment is unpublished.
    Ryan · 4 months ago
    This was very helpful! Is there a way to print multiple pages? For example, if cell A1 = 5, print pages 1-5.
    • To post as a guest, your comment is unpublished.
      crystal · 3 months ago
      Hi Ryan,
      If you want to print consecutive pages such as 1-5 in a worksheet based on a cell value, please specify a cell such as A1 as Text formatting, type 1-5 into it, keep this cell selecting, and then run the below VBA code.

      Sub Print_Pages()
      Dim xPage As String
      Dim xYesorNo As Integer
      Dim xI As String
      Dim xPArr() As String
      Dim xIS, xIE, xF, xNum As Integer
      xPage = ActiveCell.Value
      xYesorNo = MsgBox("Ready to print page" & xPage & " ", vbYesNo, "Kutools for Excel")
      If xYesorNo = vbYes Then
      xPArr() = Split(xPage, "-")
      If UBound(xPArr) = 0 Then
      If IsEmpty(xPage) And IsNumeric(xPage) Then
      MsgBox "Please specify a cell and enter a page in cell"
      Exit Sub
      End If
      xNum = Int(xPage)
      ActiveSheet.PrintOut from:=xNum, To:=xNum, preview:=True
      ElseIf UBound(xPArr) = 1 Then
      On Error GoTo Err01
      xIS = Int(xPArr(0))
      xIE = Int(xPArr(1))
      If xIS < xIE Then
      For xF = xIS To xIE
      ActiveSheet.PrintOut from:=xF, To:=xF, preview:=True
      Next
      Else
      For xF = xIE To xIS
      ActiveSheet.PrintOut from:=xF, To:=xF, preview:=True
      Next
      End If
      Else
      MsgBox "Please enter the valid data", vbOKOnly, "Kutools for Excel"
      Exit Sub
      End If
      Else
      Exit Sub
      End If
      Exit Sub
      Err01:
      MsgBox "Please enter the correct page scope", vbOKOnly, "Kutools for Excel"
      End Sub