Přejít k hlavnímu obsahu

Jak tisknout určité stránky nebo list na základě hodnoty buňky v aplikaci Excel?

Zkusili jste někdy vytisknout určitou stránku nebo list na základě hodnoty buňky v aplikaci Excel? A jak toho dosáhnout? Metody v tomto článku vám mohou pomoci vyřešit to podrobně.

Vytiskněte určitou stránku na základě hodnoty buňky pomocí kódu VBA
Vytiskněte určitý list na základě hodnoty buňky pomocí kódu VBA


Vytiskněte určitou stránku na základě hodnoty buňky pomocí kódu VBA

Například chcete, aby se určitá stránka, například stránka 1 aktuálního listu, automaticky vytiskla při zadávání stránky číslo 1 do buňky A1 v aktuálním listu. K dosažení tohoto cíle můžete udělat následující.

1. Vyberte buňku obsahující číslo stránky, na které chcete tisknout, a stiskněte Další a F11 současně otevřete Microsoft Visual Basic pro aplikace okno. Poté klepněte na tlačítko Vložit > Modul.

2. Potom Microsoft Visual Basic pro aplikace Otevře se okno, zkopírujte a vložte následující kód VBA do Kód okno.

Kód VBA: Tisk stránky na základě hodnoty buňky

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. lis F5 klíč ke spuštění kódu. Ve vyskakovacím okně Kutools pro Excel dialogové okno, klepněte na tlačítko Ano pro vytištění určité stránky nebo klikněte na Ne Pokud nechcete tisknout, zavřete dialogové okno. Viz screenshot:

Poté se otevře okno náhledu určité stránky aktuálního listu, klikněte na ikonu Tisk zahájíte tisk.


Vytiskněte určitou stránku na základě hodnoty buňky pomocí kódu VBA

Předpokládejme, že chcete vytisknout aktivní list, když se hodnota v buňce B2 tohoto listu rovná číslu 1001. Můžete toho dosáhnout pomocí následujícího kódu VBA. Postupujte prosím následovně.

1. Klikněte pravým tlačítkem na ikonu Tab který chcete vytisknout na základě hodnoty buňky, a poté klikněte Zobrazit kód z nabídky pravého tlačítka myši.

2. Potom Microsoft Visual Basic pro aplikace objeví se okno, zkopírujte a vložte následující kód VBA do okna Kód.

Kód VBA: Tisk listu založeného na hodnotě buňky

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

Poznámka: Můžete změnit buňku a hodnotu buňky v kódu, jak potřebujete.

3. lis Další + Q zavřít Microsoft Visual Basic pro aplikace okno.

Při zadávání čísla 1001 do buňky B2, a Kutools pro Excel objeví se dialogové okno, klikněte prosím na Ano zahájíte tisk. Nebo klikněte na ikonu Ne tlačítko pro opuštění dialogového okna přímo bez tisku. Viz screenshot:

Tip: Pokud chcete přímo tisknout nenasledující stránky, jako jsou stránky 1, 6 a 9 v aktuálním listu, nebo tisknout pouze sudé nebo liché stránky, můžete zkusit Tisk specifikovaných stránek nástroj pf Kutools pro Excel jak je ukázáno níže. Můžeš jít do zdarma si stáhněte software bez omezení do 30 dnů.


Související články:

Nejlepší nástroje pro produktivitu v kanceláři

🤖 Kutools AI asistent: Revoluční analýza dat založená na: Inteligentní provedení   |  Generovat kód  |  Vytvořte vlastní vzorce  |  Analyzujte data a generujte grafy  |  Vyvolejte funkce Kutools...
Populární funkce: Najít, zvýraznit nebo identifikovat duplikáty   |  Odstranit prázdné řádky   |  Kombinujte sloupce nebo buňky bez ztráty dat   |   Kolo bez vzorce ...
Super vyhledávání: Více kritérií VLookup    VLookup s více hodnotami  |   VLookup na více listech   |   Fuzzy vyhledávání ....
Pokročilý rozevírací seznam: Rychle vytvořte rozevírací seznam   |  Závislý rozbalovací seznam   |  Vícenásobný výběr rozevíracího seznamu ....
Správce sloupců: Přidejte konkrétní počet sloupců  |  Přesunout sloupce  |  Přepnout stav viditelnosti skrytých sloupců  |  Porovnejte rozsahy a sloupce ...
Doporučené funkce: Zaměření mřížky   |  Návrhové zobrazení   |   Velký Formula Bar    Správce sešitů a listů   |  Knihovna zdrojů (Automatický text)   |  Výběr data   |  Zkombinujte pracovní listy   |  Šifrovat/dešifrovat buňky    Odesílat e-maily podle seznamu   |  Super filtr   |   Speciální filtr (filtr tučné/kurzíva/přeškrtnuté...) ...
Top 15 sad nástrojů12 Text Tools (doplnit text, Odebrat znaky, ...)   |   50+ Graf Typ nemovitosti (Ganttův diagram, ...)   |   40+ Praktické Vzorce (Vypočítejte věk na základě narozenin, ...)   |   19 Vložení Tools (Vložte QR kód, Vložit obrázek z cesty, ...)   |   12 Konverze Tools (Čísla na slova, Přepočet měny, ...)   |   7 Sloučit a rozdělit Tools (Pokročilé kombinování řádků, Rozdělit buňky, ...)   |   ... a více

Rozšiřte své dovednosti Excel pomocí Kutools pro Excel a zažijte efektivitu jako nikdy předtím. Kutools for Excel nabízí více než 300 pokročilých funkcí pro zvýšení produktivity a úsporu času.  Kliknutím sem získáte funkci, kterou nejvíce potřebujete...

Popis


Office Tab přináší do Office rozhraní s kartami a usnadňuje vám práci

  • Povolte úpravy a čtení na kartách ve Wordu, Excelu, PowerPointu, Publisher, Access, Visio a Project.
  • Otevřete a vytvořte více dokumentů na nových kartách ve stejném okně, nikoli v nových oknech.
  • Zvyšuje vaši produktivitu o 50%a snižuje stovky kliknutí myší každý den!
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