Note: The other languages of the website are Google-translated. Back to English
Logga in  \/ 
x
or
x
Registrera  \/ 
x

or

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 ladda ner gratis programvaran utan begränsning på 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-2019 och 365. Stöder alla språk. Enkel distribution 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 åt dig varje dag!
officetab botten
Say something here...
symbols left.
You are guest
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 · 1 years 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 · 1 years 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
      • To post as a guest, your comment is unpublished.
        Manny · 6 months ago
        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