tuananh1202
Thành viên mới

- Tham gia
- 8/12/10
- Bài viết
- 14
- Được thích
- 0
- Giới tính
- Nam
các Anh chị em giúp em sửa lỗi và xem em em bị sai chỗ nào mà lệnh oke vẫn không chạy được ạ. em là lính mới, copy được một số code của anh sealand, nhưng áp vô bảng của em thì không chạy đc.
Em cám ơn anh chị.
Function[B][COLOR=#ff0000] Sheet[/COLOR][/B]()
Application.Volatile
Sheet = Application.ThisCell.Parent.Name
End Function
Vừa mở file đã báo lỗi ngay tại hàm này:
Hết tên đặt rồi hay sao lại lấy đúng ngay từ khóa của Excel đặt cho hàm vậy bạn?Mã:Function[B][COLOR=#ff0000] Sheet[/COLOR][/B]() Application.Volatile Sheet = Application.ThisCell.Parent.Name End Function
Báo cáo bác, cái hàm này là em dùng để lấy tên Sheet, làm giá trị cho Cell. Vì em có thói quen sửa tên sheet thì Tiêu đề của trang cũng nhảy theo. Ví dụ khi em gõ lệnh =Sheet() vào ô A1. Thì tại Cell A1 đó sẽ trả về giá trị của tên Sheet. Trong bản của em có 2 module không cần quan tâm là module tấy tên sheet làm tên tiêu đề, và module Unhide tất cả các sheet.
Bác không cần quan tâm đến Module đó đâu ạ. các Anh chị, các bác nào có thể giải quyết giúp em cái uniform ấy ạ. Em thử hết cách nhưng khi nhấn nút Print, hiện ra bảng tùy chọn, sau đó nhấn lệnh Print thì máy vẫn ko thực hiện lệnh in ạ.
Em bị bế tắc, vì em quá gà nên đi coppy của bác sealand, nên bây giờ không biết bị làm sao luôn...
Tìm Sub PrintID rồi thay thế:Dạ vâng, cái đó không sao cả bác ạ, em có thể đặt lại là "Tensheet" cũng được, mặc dù sao nó chạy vẫn ổn, không báo lỗi bác ạ...hjhj
Sub PrintID(ByVal ID As Variant, n As Integer)
Dim shPrint As Worksheet
Set shPrint = ActiveSheet
shPrint.Range("I1").Value = ID
shPrint.Calculate
shPrint.PrintOut , , n
Set shPrint = Nothing
End Sub
Thì code trong file của bạn có chỗ nào liên quan đến Print đâu mà kêu nó print chứ. Nói chung code nó vậy thì nó mần vậy
Tìm Sub PrintID rồi thay thế:
Mã:Sub PrintID(ByVal ID As Variant, n As Integer) Dim shPrint As Worksheet Set shPrint = ActiveSheet shPrint.Range("I1").Value = ID shPrint.Calculate shPrint.PrintOut , , n Set shPrint = Nothing End Sub
chắc do em tham lam muốn thêm 1 cái messbox thông báo khi nhấn lệnh in nên máy đã không hiểu, bây giờ em xóa lệnh hiện messbox và đơn giản như của bác thì em đã in được,.
Em có gửi kèm file đã chỉnh sửa... chạy trơn tru rất tốt ạ.
.PrintPreview không có thuộc tính số bản in (Copies) nên bị lỗi.
Msgbox không lỗi.
Đã xem file của bạn, có vẻ bạn đang muốn in một sheet với các dữ liệu khác nhau. Bạn có thể xem video sau, chỉ việc add code, không phải lập trình gì nữa.
[video=youtube;EJe90QMl7x0]https://www.youtube.com/watch?v=EJe90QMl7x0[/video]
nếu không muốn file đươc in bằng tay (Ctrl+P hay file\print) thì phải viết code như thế nào ạ?Tìm Sub PrintID rồi thay thế:
Mã:Sub PrintID(ByVal ID As Variant, n As Integer) Dim shPrint As Worksheet Set shPrint = ActiveSheet shPrint.Range("I1").Value = ID shPrint.Calculate shPrint.PrintOut , , n Set shPrint = Nothing End Sub
Mình không rõ đâu.nếu không muốn file đươc in bằng tay (Ctrl+P hay file\print) thì phải viết code như thế nào ạ?
bạn dùng sự kiện beforeprint thì đỡ bị mất phím P như befaint nóinếu không muốn file đươc in bằng tay (Ctrl+P hay file\print) thì phải viết code như thế nào ạ?
Private Sub Workbook_BeforePrint(Cancel As Boolean)
Cancel = True
End Sub