Note: The other languages of the website are Google-translated. Back to English

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 i 30 dagar.


Relaterade artiklar:


De bästa Office-produktivitetsverktygen

Kutools för Excel löser de flesta av dina problem och ökar din produktivitet med 80%

  • återanvändning: Sätt snabbt i komplexa formler, diagram och allt som du har använt tidigare; Kryptera celler med lösenord; Skapa e-postlista och skicka e-post ...
  • Super Formula Bar (enkelt redigera flera rader med text och formel); Läslayout (enkelt läsa och redigera ett stort antal celler); Klistra in i filtrerat intervall...
  • Sammanfoga celler / rader / kolumner utan att förlora data; Delat cellinnehåll; Kombinera duplicerade rader / kolumner... Förhindra duplicerade celler; Jämför intervall...
  • Välj Duplicera eller Unikt Rader; Välj tomma rader (alla celler är tomma); Super Find och Fuzzy Find i många arbetsböcker; Slumpmässigt val ...
  • Exakt kopia Flera celler utan att ändra formelreferens; Skapa referenser automatiskt till flera ark; Sätt in kulor, Kryssrutor och mer ...
  • Extrahera text, Lägg till text, ta bort efter position, Ta bort mellanslag; Skapa och skriva ut personsökningstalsatser; Konvertera mellan celler innehåll och kommentarer...
  • Superfilter (spara och tillämpa filterscheman på andra ark); Avancerad sortering efter månad / vecka / dag, frekvens och mer; Specialfilter av fet, kursiv ...
  • Kombinera arbetsböcker och arbetsblad; Sammanfoga tabeller baserat på nyckelkolumner; Dela data i flera ark; Batchkonvertera xls, xlsx och PDF...
  • Mer än 300 kraftfulla funktioner. Stöder Office / Excel 2007-2021 och 365. Stöder alla språk. Enkel implementering i ditt företag eller organisation. Fullständiga funktioner 30 dagars gratis provperiod. 60 dagars pengarna tillbaka-garanti.
kte-flik 201905

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!
officetab botten
Sortera kommentarer efter
Kommentarer (4)
Inga betyg än. Bli först med att betygsätta!
Denna kommentar minimerades av moderatoren på webbplatsen
Detta var till stor hjälp! Finns det något sätt att skriva ut flera sidor? Till exempel, om cell A1 = 5, skriv ut sidorna 1-5.
Denna kommentar minimerades av moderatoren på webbplatsen
Hej Ryan,
Om du vill skriva ut på varandra följande sidor som t.ex. 1-5 i ett kalkylblad baserat på ett cellvärde, vänligen ange en cell som A1 som textformatering, skriv 1-5 i den, fortsätt att välja den här cellen och kör sedan nedanstående VBA koda.

Sub Print_Pages()
Dim xPage As String
Dim xYesorNo Som heltal
Dim xI As String
Dim xPArr() Som sträng
Dim xIS, xIE, xF, xNum Som heltal
xPage = ActiveCell.Value
xYesorNo = MsgBox("Redo att skriva ut sida" & xPage & " ", vbYesNo, "Kutools för Excel")
Om xYesorNo = vbYes Då
xPArr() = Split(xPage, "-")
Om UBound(xPArr) = 0 Då
Om IsEmpty(xPage) Och IsNumeric(xPage) Då
MsgBox "Vänligen ange en cell och ange en sida i cellen"
Exit Sub
End If
xNum = Int(xPage)
ActiveSheet.PrintOut from:=xNum, To:=xNum, preview:=True
ElseIf UBound(xPArr) = 1 Då
Vid fel GoTo Err01
xIS = Int(xPArr(0))
xIE = Int(xPArr(1))
Om xIS < xIE Då
För xF = xIS Till xIE
ActiveSheet.PrintOut from:=xF, To:=xF, preview:=True
Nästa
annars
För xF = xIE Till xIS
ActiveSheet.PrintOut from:=xF, To:=xF, preview:=True
Nästa
End If
annars
MsgBox "Vänligen ange giltiga data", vbOKOnly, "Kutools för Excel"
Exit Sub
End If
annars
Exit Sub
End If
Exit Sub
Err01:
MsgBox "Vänligen ange rätt sidomfattning", vbOKOnly, "Kutools för Excel"
End Sub
Denna kommentar minimerades av moderatoren på webbplatsen
Tack. Jag har samma problem som jag vill skriva ut sidor baserat på cellvärde. Låt oss säga varierande förändringar, dvs. sidan 1-5 och sedan någon gång 2-6. Så jag har ett fält som kommer att beräkna och kommer att lägga det i textformat som föreslås. Men av någon anledning fungerar det inte för mig. Den skriver inte ut några sidor. Kan du ge råd
Denna kommentar minimerades av moderatoren på webbplatsen
Har du någonsin kommit på hur du får det här att fungera?
Det finns inga kommentarer här ännu
Lämna dina kommentarer
Postar som gäst
×
Betygsätt detta inlägg:
0   Tecken
Föreslagna platser

Följ oss

Copyright © 2009 - www.extendoffice.com. | Alla rättigheter förbehållna. Drivs av ExtendOffice. | | Sitemap
Microsoft och Office-logotypen är varumärken eller registrerade varumärken som tillhör Microsoft Corporation i USA och / eller andra länder.
Skyddad av Sectigo SSL