Прескочи на основното съдържание

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

Автор: Силувия Последна промяна: 2020-12-08

Опитвали ли сте някога да отпечатате определена страница или работен лист въз основа на стойност на клетка в Excel? И как да го постигнем? Методите в тази статия могат да ви помогнат да го разрешите в детайли.

Отпечатайте определена страница въз основа на стойност на клетка с VBA код
Отпечатайте определен работен лист въз основа на стойност на клетка с VBA код


Отпечатайте определена страница въз основа на стойност на клетка с VBA код

Например искате определена страница, като например страница 1 от текущия работен лист, да се отпечата автоматично при въвеждане на номер на страница 1 в клетка A1 в текущия работен лист. Можете да направите следното, за да го постигнете.

1. Изберете клетката, която съдържа номера на страницата, въз основа на която искате да отпечатате, след което натиснете Друг намлява 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 за Excel кликнете върху Да бутон, за да отпечатате определена страница, или щракнете върху Не бутон, за да излезете от диалоговия прозорец, ако не искате да печатате. Вижте екранна снимка:

След това се отваря прозорецът за визуализация на определена страница от текущия работен лист, моля, щракнете върху Изпринти бутон, за да започнете да печатате.


Отпечатайте определена страница въз основа на стойност на клетка с 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, a Kutools за Excel изскача диалогов прозорец, моля щракнете върху Да бутон, за да започнете да печатате. Или щракнете върху Не бутон, за да излезете директно от диалоговия прозорец без печат. Вижте екранна снимка:

Съвет: Ако искате директно да отпечатате непоследователни страници, като страница 1, 6 и 9 в текущия работен лист, или да отпечатате само всички четни или нечетни страници, можете да опитате Печат на определени страници полезност pf Kutools за Excel както е показано на екранната снимка по-долу. Може да отидеш до безплатно изтегляне на софтуера без ограничение за 30 дни.


Свързани статии:

Най-добрите инструменти за продуктивност в офиса

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

Усъвършенствайте уменията си за Excel с Kutools за Excel и изпитайте ефективност, както никога досега. Kutools за Excel предлага над 300 разширени функции за повишаване на производителността и спестяване на време.  Щракнете тук, за да получите функцията, от която се нуждаете най-много...

Описание


Раздел Office Внася интерфейс с раздели в Office и прави работата ви много по-лесна

  • Разрешете редактиране и четене с раздели в Word, Excel, PowerPoint, Publisher, Access, Visio и Project.
  • Отваряйте и създавайте множество документи в нови раздели на един и същ прозорец, а не в нови прозорци.
  • Увеличава вашата производителност с 50% и намалява стотици кликвания на мишката за вас всеки ден!
Comments (4)
No ratings yet. Be the first to rate!
This comment was minimized by the moderator on the site
This was very helpful! Is there a way to print multiple pages? For example, if cell A1 = 5, print pages 1-5.
This comment was minimized by the moderator on the site
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
This comment was minimized by the moderator on the site
Thank you. I have the same issue I want to print pages based on cell value. Lets say variable changes i.e page 1-5 and then some time 2-6. So I have a field which will calculate and will put that in text format as suggested.But for some reason it doesnt work for me. It doesnt prints any pages.Can you please advise
This comment was minimized by the moderator on the site
Did you ever figure out how to get this working?
There are no comments posted here yet
Please leave your comments in English
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations