Hoppa till huvudinnehåll

Hur skriver jag ut vissa sidor eller kalkylblad baserat på cellvärde i Excel?

Har du någonsin försökt skriva ut en viss sida eller ett kalkylblad baserat på ett cellvärde i Excel? Och hur man uppnår det? Metoderna i den här artikeln kan hjälpa dig att lösa det i detalj.

Skriv ut en viss sida baserat på cellvärde med VBA-kod
Skriv ut ett kalkylblad baserat på cellvärde med VBA-kod


Skriv ut en viss sida baserat på cellvärde med VBA-kod

Du vill till exempel att en viss sida, t.ex. sidan 1 i det aktuella kalkylbladet, ska skrivas ut automatiskt när du matar in sidnummer 1 i cell A1 i det aktuella kalkylbladet. Du kan göra på följande sätt för att uppnå det.

1. Välj cellen som innehåller sidnumret du vill skriva ut baserat på och tryck sedan på andra och F11 samtidigt för att öppna Microsoft Visual Basic för applikationer fönster. Klicka sedan Insert > Modulerna.

2. Sedan Microsoft Visual Basic för applikationer fönstret dyker upp, vänligen kopiera och klistra in följande VBA-kod i Koda fönster.

VBA-kod: Skriv ut sidan baserat på cellvärde

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. Tryck F5 för att köra koden. I pop-up Kutools för Excel dialogrutan, klicka på Ja för att skriva ut en viss sida eller klicka på Nej för att stänga dialogrutan om du inte vill skriva ut. Se skärmdump:

Sedan öppnas förhandsgranskningsfönstret för den aktuella sidan i det aktuella kalkylbladet, klicka på Skriva ut för att börja skriva ut.


Skriv ut en viss sida baserat på cellvärde med VBA-kod

Anta att du vill skriva ut det aktiva kalkylbladet när värdet i cell B2 i det här arket är lika med nummer 1001. Du kan uppnå det med följande VBA-kod. Gör så här.

1. Högerklicka på Tabell för ark som du vill skriva ut baserat på cellvärde och klicka sedan på Visa kod från högerklickmenyn.

2. Sedan Microsoft Visual Basic för applikationer fönstret dyker upp, vänligen kopiera och klistra in följande VBA-kod i kodfönstret.

VBA-kod: Skriv ut kalkylblad baserat på cellvärde

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

Anmärkningar: Du kan ändra cellen och cellvärdet i koden efter behov.

3. Tryck andra + Q att stänga Microsoft Visual Basic för applikationer fönster.

När du anger nummer 1001 i cell B2, a Kutools för Excel dialogrutan dyker upp, klicka på Ja för att börja skriva ut. Eller klicka på Nej för att stänga dialogrutan direkt utan att skriva ut. Se skärmdump:

Dricks: Om du vill skriva ut sidor som inte går i följd, t.ex. sidorna 1, 6 och 9 i det aktuella kalkylbladet, eller bara skriva ut alla jämna eller udda sidor kan du prova Skriv ut specifika sidor verktyg pf Kutools för Excel som nedan visas skärmdump. Du kan gå till gratis nedladdning av programvaran utan begränsning inom 30 dagar.


Relaterade artiklar:

Bästa kontorsproduktivitetsverktyg

🤖 Kutools AI Aide: Revolutionera dataanalys baserat på: Intelligent utförande   |  Generera kod  |  Skapa anpassade formler  |  Analysera data och generera diagram  |  Anropa Kutools funktioner.
Populära funktioner: Hitta, markera eller identifiera dubbletter   |  Ta bort tomma rader   |  Kombinera kolumner eller celler utan att förlora data   |   Rund utan formel ...
Superuppslag: Flera kriterier VLookup    VLookup med flera värden  |   VSök över flera ark   |   Fuzzy Lookup ....
Avancerad rullgardinslista: Skapa snabbt en rullgardinslista   |  Beroende rullgardinslista   |  Flervals-rullgardinslista ....
Kolumnhanterare: Lägg till ett specifikt antal kolumner  |  Flytta kolumner  |  Växla synlighetsstatus för dolda kolumner  |  Jämför intervall och kolumner ...
Utvalda funktioner: Rutnätsfokus   |  Designvy   |   Stor formelbar    Arbetsbok & Bladhanterare   |  Resursbibliotek (Automatisk text)   |  Datumväljare   |  Kombinera arbetsblad   |  Kryptera/Dekryptera celler    Skicka e-postmeddelanden efter lista   |  Superfilter   |   Specialfilter (filtrera fet/kursiv/genomstruken...) ...
Topp 15 verktygssatser12 text verktyg (lägga till text, Ta bort tecken, ...)   |   50+ Diagram Typer (Gantt Chart, ...)   |   40+ Praktiskt Formler (Beräkna ålder baserat på födelsedag, ...)   |   19 Införande verktyg (Infoga QR-kod, Infoga bild från sökväg, ...)   |   12 Konvertering verktyg (Siffror till ord, Valutaväxling, ...)   |   7 Slå ihop och dela verktyg (Avancerade kombinera rader, Dela celler, ...)   |   ... och mer

Uppgradera dina Excel-färdigheter med Kutools för Excel och upplev effektivitet som aldrig förr. Kutools för Excel erbjuder över 300 avancerade funktioner för att öka produktiviteten och spara tid.  Klicka här för att få den funktion du behöver mest...

Beskrivning


Fliken Office ger ett flikgränssnitt till Office och gör ditt arbete mycket enklare

  • Aktivera flikredigering och läsning i Word, Excel, PowerPoint, Publisher, Access, Visio och Project.
  • Öppna och skapa flera dokument i nya flikar i samma fönster, snarare än i nya fönster.
  • Ökar din produktivitet med 50 % och minskar hundratals musklick för dig varje dag!
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