Lưu ý: Các ngôn ngữ khác của trang web đều do Google dịch. Quay lại tiếng Anh
Đăng nhập  \/ 
x
or
x
Đăng ký  \/ 
x

or

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ác công cụ năng suất văn phòng tốt nhất

Kutools cho Excel giải quyết hầu hết các vấn đề của bạn và tăng 80% năng suất của bạn

  • Tái sử dụng: Chèn nhanh công thức phức tạp, biểu đồ và bất cứ thứ gì bạn đã sử dụng trước đây; Mã hóa ô với mật khẩu; Tạo danh sách gửi thư và gửi email ...
  • Super Formula Bar (dễ dàng chỉnh sửa nhiều dòng văn bản và công thức); Bố cục đọc (dễ dàng đọc và chỉnh sửa số lượng ô lớn); Dán vào Dải ô đã Lọc...
  • Hợp nhất các ô / hàng / cột mà không làm mất dữ liệu; Nội dung phân chia ô; Kết hợp các hàng / cột trùng lặp... Ngăn chặn các ô trùng lặp; So sánh các dãy...
  • Chọn trùng lặp hoặc duy nhất Hàng; Chọn hàng trống (tất cả các ô đều trống); Tìm siêu và Tìm mờ trong Nhiều Sổ làm việc; Chọn ngẫu nhiên ...
  • Bản sao chính xác Nhiều ô mà không thay đổi tham chiếu công thức; Tự động tạo tài liệu tham khảo sang Nhiều Trang tính; Chèn Bullets, Hộp kiểm và hơn thế nữa ...
  • Trích xuất văn bản, Thêm Văn bản, Xóa theo Vị trí, Xóa không gian; Tạo và In Tổng số phân trang; Chuyển đổi giữa nội dung ô và nhận xét...
  • Siêu lọc (lưu và áp dụng các lược đồ lọc cho các trang tính khác); Sắp xếp nâng cao theo tháng / tuần / ngày, tần suất và hơn thế nữa; Bộ lọc đặc biệt bằng cách in đậm, in nghiêng ...
  • Kết hợp Workbook và WorkSheets; Hợp nhất các bảng dựa trên các cột chính; Chia dữ liệu thành nhiều trang tính; Chuyển đổi hàng loạt xls, xlsx và PDF...
  • Hơn 300 tính năng mạnh mẽ. Hỗ trợ Office / Excel 2007-2019 và 365. Hỗ trợ tất cả các ngôn ngữ. Dễ dàng triển khai trong doanh nghiệp hoặc tổ chức của bạn. Đầy đủ các tính năng dùng thử miễn phí 30 ngày. Đảm bảo hoàn tiền trong 60 ngày.
tab kte 201905

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!
officetab dưới cùng
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 · 5 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