ไปยังเนื้อหาหลัก

วิธีการพิมพ์บางหน้าหรือแผ่นงานตามค่าเซลล์ใน 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 AI ผู้ช่วย: ปฏิวัติการวิเคราะห์ข้อมูลโดยยึดตาม: การดำเนินการที่ชาญฉลาด   |  สร้างรหัส  |  สร้างสูตรที่กำหนดเอง  |  วิเคราะห์ข้อมูลและสร้างแผนภูมิ  |  เรียกใช้ฟังก์ชัน Kutools...
คุณสมบัติยอดนิยม: ค้นหา เน้น หรือระบุรายการที่ซ้ำกัน   |  ลบแถวว่าง   |  รวมคอลัมน์หรือเซลล์โดยไม่สูญเสียข้อมูล   |   รอบโดยไม่มีสูตร ...
การค้นหาขั้นสูง: VLookup หลายเกณฑ์    VLookup หลายค่า  |   VLookup ข้ามหลายแผ่น   |   การค้นหาที่ไม่ชัดเจน ....
รายการแบบเลื่อนลงขั้นสูง: สร้างรายการแบบหล่นลงอย่างรวดเร็ว   |  รายการแบบหล่นลงขึ้นอยู่กับ   |  เลือกหลายรายการแบบหล่นลง ....
ผู้จัดการคอลัมน์: เพิ่มจำนวนคอลัมน์เฉพาะ  |  ย้ายคอลัมน์  |  สลับสถานะการมองเห็นของคอลัมน์ที่ซ่อนอยู่  |  เปรียบเทียบช่วงและคอลัมน์ ...
คุณสมบัติเด่น: กริดโฟกัส   |  มุมมองการออกแบบ   |   บาร์สูตรใหญ่    สมุดงานและตัวจัดการชีต   |  ห้องสมุดทรัพยากร (ข้อความอัตโนมัติ)   |  เลือกวันที่   |  รวมแผ่นงาน   |  เข้ารหัส/ถอดรหัสเซลล์    ส่งอีเมลตามรายการ   |  ซุปเปอร์ฟิลเตอร์   |   ตัวกรองพิเศษ (กรองตัวหนา/ตัวเอียง/ขีดทับ...) ...
ชุดเครื่องมือ 15 อันดับแรก12 ข้อความ เครื่องมือ (เพิ่มข้อความ, ลบอักขระ, ... )   |   50 + แผนภูมิ ประเภท (แผนภูมิ Gantt, ... )   |   40+ ใช้งานได้จริง สูตร (คำนวณอายุตามวันเกิด, ... )   |   19 การแทรก เครื่องมือ (ใส่ QR Code, แทรกรูปภาพจากเส้นทาง, ... )   |   12 การแปลง เครื่องมือ (ตัวเลขเป็นคำ, การแปลงสกุลเงิน, ... )   |   7 ผสานและแยก เครื่องมือ (แถวรวมขั้นสูง, แยกเซลล์, ... )   |   ... และอื่น ๆ

เพิ่มพูนทักษะ Excel ของคุณด้วย Kutools สำหรับ Excel และสัมผัสประสิทธิภาพอย่างที่ไม่เคยมีมาก่อน Kutools สำหรับ Excel เสนอคุณสมบัติขั้นสูงมากกว่า 300 รายการเพื่อเพิ่มประสิทธิภาพและประหยัดเวลา  คลิกที่นี่เพื่อรับคุณสมบัติที่คุณต้องการมากที่สุด...

รายละเอียด


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

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