Note: The other languages of the website are Google-translated. Back to English
ล็อกอิน  \/ 
x
or
x
สมัครสมาชิก  \/ 
x

or

วิธีการพิมพ์บางหน้าหรือแผ่นงานตามค่าเซลล์ใน Excel

คุณเคยพยายามพิมพ์หน้าหรือแผ่นงานตามค่าของเซลล์ใน 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 ใหคลิกปุ the ม ใช่ เพื่อพิมพ์บางหน้าหรือคลิกปุ่ม ไม่ เพื่อออกจากกล่องโต้ตอบหากคุณไม่ต้องการพิมพ์ ดูภาพหน้าจอ:

จากนั้นหน้าต่างแสดงตัวอย่างของบางหน้าของแผ่นงานปัจจุบันจะเปิดขึ้นโปรดคลิกที่ไฟล์ พิมพ์ เพื่อเริ่มการพิมพ์


พิมพ์หน้าบางหน้าตามค่าของเซลล์ด้วยรหัส 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 ก Kutools สำหรับ Excel กล่องโต้ตอบปรากฏขึ้นโปรดคลิกที่ไฟล์ ใช่ เพื่อเริ่มการพิมพ์ หรือคลิกไฟล์ ไม่ เพื่อออกจากกล่องโต้ตอบโดยตรงโดยไม่ต้องพิมพ์ ดูภาพหน้าจอ:

เคล็ดลับ: หากคุณต้องการพิมพ์หน้าที่ไม่ต่อเนื่องกันโดยตรงเช่นหน้า 1, 6 และ 9 ในแผ่นงานปัจจุบันหรือพิมพ์เฉพาะหน้าคู่หรือหน้าคี่ทั้งหมดคุณสามารถลองใช้ พิมพ์หน้าที่ระบุ ยูทิลิตี้ pf Kutools สำหรับ Excel ดังภาพด้านล่างที่แสดง คุณสามารถไปที่ ดาวน์โหลดซอฟต์แวร์ฟรีโดยไม่มีข้อ จำกัด ใน 30 วัน.


บทความที่เกี่ยวข้อง:


เครื่องมือเพิ่มประสิทธิภาพการทำงานในสำนักงานที่ดีที่สุด

Kutools สำหรับ Excel ช่วยแก้ปัญหาส่วนใหญ่ของคุณและเพิ่มผลผลิตของคุณได้ถึง 80%

  • นำมาใช้ใหม่: ใส่อย่างรวดเร็ว สูตรที่ซับซ้อนแผนภูมิ และสิ่งที่คุณเคยใช้มาก่อน เข้ารหัสเซลล์ ด้วยรหัสผ่าน; สร้างรายชื่อผู้รับจดหมาย และส่งอีเมล ...
  • Super Formula Bar (แก้ไขข้อความและสูตรหลายบรรทัดได้อย่างง่ายดาย); การอ่านเค้าโครง (อ่านและแก้ไขเซลล์จำนวนมากได้อย่างง่ายดาย); วางลงในช่วงที่กรองแล้ว...
  • ผสานเซลล์ / แถว / คอลัมน์ โดยไม่สูญเสียข้อมูล แยกเนื้อหาของเซลล์ รวมแถว / คอลัมน์ที่ซ้ำกัน... ป้องกันเซลล์ซ้ำ; เปรียบเทียบช่วง...
  • เลือกซ้ำหรือไม่ซ้ำ แถว; เลือกแถวว่าง (เซลล์ทั้งหมดว่างเปล่า); Super Find และ Fuzzy Find ในสมุดงานจำนวนมาก สุ่มเลือก ...
  • สำเนาถูกต้อง หลายเซลล์โดยไม่เปลี่ยนการอ้างอิงสูตร สร้างการอ้างอิงอัตโนมัติ ถึงหลายแผ่น ใส่สัญลักษณ์แสดงหัวข้อย่อย, กล่องกาเครื่องหมายและอื่น ๆ ...
  • แยกข้อความ, เพิ่มข้อความ, ลบตามตำแหน่ง, ลบ Space; สร้างและพิมพ์ผลรวมย่อยของเพจ แปลงระหว่างเนื้อหาของเซลล์และความคิดเห็น...
  • ซุปเปอร์ฟิลเตอร์ (บันทึกและใช้โครงร่างตัวกรองกับแผ่นงานอื่น ๆ ); การเรียงลำดับขั้นสูง ตามเดือน / สัปดาห์ / วันความถี่และอื่น ๆ ตัวกรองพิเศษ โดยตัวหนาตัวเอียง ...
  • รวมสมุดงานและแผ่นงาน; ผสานตารางตามคอลัมน์สำคัญ แยกข้อมูลออกเป็นหลายแผ่น; Batch แปลง xls, xlsx และ PDF...
  • คุณสมบัติที่ทรงพลังมากกว่า 300 รายการ. รองรับ Office / Excel 2007-2019 และ 365 รองรับทุกภาษา ใช้งานง่ายในองค์กรหรือองค์กรของคุณ ทดลองใช้ฟรี 30 วันเต็ม รับประกันคืนเงิน 60 วัน
kte แท็บ 201905

แท็บ Office นำอินเทอร์เฟซแบบแท็บมาที่ Office และทำให้งานของคุณง่ายขึ้นมาก

  • เปิดใช้งานการแก้ไขและอ่านแบบแท็บใน Word, Excel, PowerPoint, ผู้จัดพิมพ์, Access, Visio และโครงการ
  • เปิดและสร้างเอกสารหลายรายการในแท็บใหม่ของหน้าต่างเดียวกันแทนที่จะเป็นในหน้าต่างใหม่
  • เพิ่มผลผลิตของคุณ 50% และลดการคลิกเมาส์หลายร้อยครั้งให้คุณทุกวัน!
ด้านล่าง officetab
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