Bỏ qua nội dung chính

Làm cách nào để in các trang hoặc trang tính nhất định dựa trên giá trị ô trong Excel?

Bạn đã bao giờ cố gắng in một trang hoặc trang tính nhất định dựa trên một giá trị ô trong Excel chưa? Và làm thế nào để đạt được nó? Các phương pháp trong bài viết này có thể giúp bạn giải quyết nó một cách chi tiết.

In trang nhất định dựa trên giá trị ô với mã VBA
In trang tính nhất định dựa trên giá trị ô với mã VBA


In trang nhất định dựa trên giá trị ô với mã VBA

Ví dụ: bạn muốn một trang nhất định, chẳng hạn như trang 1 của trang tính hiện tại được in tự động khi nhập số trang 1 vào ô A1 trong trang tính hiện tại. Bạn có thể làm như sau để đạt được nó.

1. Chọn ô chứa số trang bạn muốn in dựa trên đó, sau đó nhấn KhácF11 các phím đồng thời để mở Microsoft Visual Basic cho các ứng dụng cửa sổ. Sau đó nhấp vào Chèn > Mô-đun.

2. Sau đó Microsoft Visual Basic cho các ứng dụng cửa sổ bật lên, vui lòng sao chép và dán mã VBA sau vào cửa sổ.

Mã VBA: In trang dựa trên giá trị ô

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. nhấn F5 phím để chạy mã. Trong cửa sổ bật lên Kutools cho Excel hộp thoại, nhấp vào để in trang nhất định hoặc nhấp vào Không để thoát khỏi hộp thoại nếu bạn không muốn in. Xem ảnh chụp màn hình:

Sau đó, cửa sổ xem trước của trang nhất định của trang tính hiện tại sẽ mở ra, vui lòng nhấp vào In để bắt đầu in.


In trang nhất định dựa trên giá trị ô với mã VBA

Giả sử bạn muốn in trang tính đang hoạt động khi giá trị trong ô B2 của trang tính này bằng số 1001. Bạn có thể đạt được nó bằng mã VBA sau. Hãy làm như sau.

1. Nhấp chuột phải vào Tab trang tính mà bạn muốn in dựa trên giá trị ô, sau đó bấm Mã Chế độ xem từ menu chuột phải.

2. Sau đó Microsoft Visual Basic cho các ứng dụng cửa sổ bật lên, vui lòng sao chép và dán mã VBA sau vào cửa sổ Mã.

Mã VBA: In trang tính dựa trên giá trị ô

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

Chú thích: Bạn có thể thay đổi ô và giá trị ô trong mã khi bạn cần.

3. nhấn Khác + Q để đóng Microsoft Visual Basic cho các ứng dụng cửa sổ.

Khi nhập số 1001 vào ô B2, a Kutools cho Excel hộp thoại bật lên, vui lòng nhấp vào để bắt đầu in. Hoặc nhấp vào Không để thoát khỏi hộp thoại trực tiếp mà không cần in. Xem ảnh chụp màn hình:

Mẹo: Nếu bạn muốn in trực tiếp các trang không liên tiếp như trang 1, 6 và 9 trong trang tính hiện tại hoặc chỉ in tất cả các trang chẵn hoặc lẻ, bạn có thể thử In các trang được chỉ định pf tiện ích Kutools cho Excel như ảnh chụp màn hình dưới đây được hiển thị. Bạn có thể đi đến tải xuống miễn phí phần mềm không giới hạn trong 30 ngày.


Các bài liên quan:

Công cụ năng suất văn phòng tốt nhất

🤖 Trợ lý AI của Kutools: Cách mạng hóa việc phân tích dữ liệu dựa trên: Thực thi thông minh   |  Tạo mã  |  Tạo công thức tùy chỉnh  |  Phân tích dữ liệu và tạo biểu đồ  |  Gọi các hàm Kutools...
Các tính năng phổ biến: Tìm, đánh dấu hoặc xác định các bản sao   |  Xóa hàng trống   |  Kết hợp các cột hoặc ô mà không làm mất dữ liệu   |   Vòng không có công thức hữu ích. Cảm ơn !
Siêu tra cứu: Nhiều tiêu chí VLookup    VLookup Nhiều Giá Trị  |   VLookup trên nhiều trang tính   |   Tra cứu mờ ....
Danh sách thả xuống nâng cao: Tạo nhanh danh sách thả xuống   |  Danh sách thả xuống phụ thuộc   |  Danh sách thả xuống nhiều lựa chọn ....
Trình quản lý cột: Thêm một số cột cụ thể  |  Di chuyển cột  |  Chuyển đổi trạng thái hiển thị của các cột ẩn  |  So sánh dãy và cột hữu ích. Cảm ơn !
Các tính năng nổi bật: Tiêu điểm lưới   |  Chế độ xem thiết kế   |   Thanh công thức lớn    Trình quản lý sổ làm việc & trang tính   |  Thư viện tài nguyên (Văn bản tự động)   |  Bảng chọn ngày   |  Kết hợp các bảng tính   |  Mã hóa/Giải mã ô    Gửi email theo danh sách   |  Siêu lọc   |   Bộ lọc đặc biệt (lọc in đậm/nghiêng/gạch ngang...) ...
15 bộ công cụ hàng đầu12 bản văn CÔNG CỤ (thêm văn bản, Xóa ký tự,...)   |   50 + Biểu đồ Các loại (Biểu đồ Gantt,...)   |   40+ Thực tế Công thức (Tính tuổi dựa trên ngày sinh,...)   |   19 chèn CÔNG CỤ (Chèn mã QR, Chèn ảnh từ đường dẫn,...)   |   12 Chuyển đổi CÔNG CỤ (Số thành từ, Chuyển đổi tiền tệ,...)   |   7 Hợp nhất & Tách CÔNG CỤ (Các hàng kết hợp nâng cao, Chia ô,...)   |   ... và nhiều hơn nữa

Nâng cao kỹ năng Excel của bạn với Kutools for Excel và trải nghiệm hiệu quả hơn bao giờ hết. Kutools for Excel cung cấp hơn 300 tính năng nâng cao để tăng năng suất và tiết kiệm thời gian.  Bấm vào đây để có được tính năng bạn cần nhất...

Mô tả


Tab Office mang lại giao diện Tab cho Office và giúp công việc của bạn trở nên dễ dàng hơn nhiều

  • Cho phép chỉnh sửa và đọc theo thẻ trong Word, Excel, PowerPoint, Publisher, Access, Visio và Project.
  • Mở và tạo nhiều tài liệu trong các tab mới của cùng một cửa sổ, thay vì trong các cửa sổ mới.
  • Tăng 50% năng suất của bạn và giảm hàng trăm cú nhấp chuột cho bạn mỗi ngày!
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