In đồng loạt các worksheet với module mPrintMulTiSheet.
Đôi khi cần in nhiều Worksheet đồng loạt, theo một thứ tự nào đó. Thậm chí bạn nghĩ
tới Mail Merge trong Excel. Hoặc có những nhu cầu in ấn chẳng giống ai.
mPrintMulTiSheet chính là giải pháp bạn cần.
Với mPrintMulTiSheet bạn có thể:
+ In đồng loạt nhiều Worksheet, thậm chỉ cả các Worksheet thuộc các Workbook
khác.
+ Lựa chọn số trang cần in, thậm chí là cả đánh số trang bắt đầu.
+ Thực hiện Mail Merge trong Excel.
+ In ấn theo một điều kiện cho trước.
+ Dùng một nút bấm có thể quản lý rất nhiều “Bảng định nghĩa vùng in”.
+ Đơn giản, tất cả bạn chỉ cần gõ công thức, những thứ bạn rất giỏi.
Các bước để sử dụng mPrintMulTiSheet:
+ Tải Module mPrintMulTiSheet theo link.
+ Thêm Module vào file của bạn.
+ Tạo “Bảng định nghĩa vùng in”.
+ Thiết lập nút bấm ( tùy chọn).
+ Chạy “MacroPrintMulTiShee”.
Tạo “Bạng định nghĩa vùng in”
Trong hai hình trên VI ( bảng định nghĩa vùng in) chỉ tình từ hàng 10, hàng 9 không
có ý nghĩa, chỉ viết ra cho dễ nhìn.
Cấu trúc VI :
+ Ít nhất gồm hai hàng, có thể có 1 hoặc nhiều cột, thiếu cột nào thì sẽ coi là mặc
định.
+ Trường “mdi”, ô đầu tiên của bảng.
- Nếu rỗng thì sẽ in ra máy in.
- Nếu không rỗng sẽ in ra file, và nó cũng là đuôi của file, nó có thể là pdf chẳng
hạn.
+ Print From, trang bắt đầu in:
- Nó có thể là một hằng số hoặc một công thức.
- Nếu nó là 0 hoặc lớn hơn 0 thì nó là trang bắt đầu in.
- Ngược lại thì worksheet sẽ không được in.
- Có thể dùng nó để in theo điều kiện.
+ Print To, trang cuối được in.
- Nếu thiệt lập sai nó sẽ được tính là in đến hết worksheet.
+ Print Frist: trang đầu tiên sẽ được đánh số trang là bao nhiều.
- Nếu thiết lập sai thì sẽ thành mặc định, tức là 1.
+ Print From, Print To, Print Frist:
- Có thể thay thế 3 cụm từ đó bằng bất cứ cái gì, viết ra cho đẹp thui.
- 3 trường này có thể không có, thiếu thành phần nào thì nó sẽ coi là mặc định,
Print From =1 , Print To= số trang trong worksheet, Print Frist=1.
- Cột thứ 2 luôn là Print From.
- Cột thứ 3 luôn là Print To.
- Cột thứ 4 luôn là Print Frist.
+ Các trường biến số:
- Nó luôn bắt đầu từ cột thứ 5, muốn có các trường này thì bắt buộc phải có đầy
đủ Print From, Print To, Print Frist.
- Chúng phải chứa các công thức mà tham chiếu đến các ô khác. Vd =a1.
- Số lượng là tùy ý.
+ Các bản ghi, các ô ở dòng thứ 2 trở xuống.
- Các ô này có thể dữ liệu hoặc công thức.
- Riêng các ô ở cột 1 ( mid) phải là các công thức mà trả lại một tham chiếu, nếu
không sẽ bị bỏ qua. Ô tham chiếu nằm trên sheet nào thì sheet ấy sẽ được in.
Cách làm việc:
+ Mỗi hàng sẽ tương ứng với một worksheet được in.
+ Xét hàng 11.
- Giá trị 1 tại ô I11 sẽ được nạp vào ô F2.
- Giá trị 2 trại ô J11 sẽ được nạp vào ô A1 của Sheet3.
- Giá trị 3 sẽ tại ô K11 sẽ được nạp vào ô H2.
- E11 có công thức là C2, vậy hàng này sẽ tương ứng với in Sheet5.
- Sẽ in từ trang 3 tới trang 6, trang đầu tiên sẽ được đánh số là 2 ( thay vì 1 theo
mặc định)
+ Xét hàng 12.
- Do Print From bằng -1, không hợp lệ, nên Sheet3 sẽ không được in.
Chạy “MacroPrintMulTiShee”.
Có 3 cách để chạy:
+ Dùng hộp thoại Macro.
+ Dùng nút bấm gán Macro.
+ Chạy trong Vba.
Dùng hộp thoại Macro:
+ Chọn toàn bộ VI.
+ ALT+F11.
+ Chọn MacroPrintMulTiSheet.
+ Click Run.
+ Nếu bạn không chọn vùng VI, nó sẽ hỏi bạn chọn Vi.
Dùng nút bấm( shape) gán macro:
+ Tạo nút bấm như bình thường và gán macro MacroPrintMulTiSheet.
+ Mỗi lần nhấn nút bấm, nó sẽ hỏi bạn bảng VI.
+ Một tùy chọn khác:
- Tại ô mà góc trái trên của nút bấm nằm bạn nhập một công thức mà trả lại tham
chiếu tới VI, vi dụ =E10:K11, đừng quan tâm xem ô hiển thị cái gì.
- Khi nhấn nút bấm, bạn sẽ không phải chọn VI, Vi chính là tham chiếu E10:K11
mà bạn vừa định nghĩa.
- Với tùy chọn này, bạn có thể dùng một nút bấm mà có thể quản lý rất nhiều VI,
tất cả chỉ là công thức mà bạn viết.
Sử dụng vba: