Sửa dùm em đoạn code cho nút Print (1 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

truckhoa2006

Thành viên hoạt động
Tham gia
3/10/07
Bài viết
155
Được thích
16
Hồi trước em được thầy NDU và các bạn trên GPE cho đoạn code để thực hiện in từng phiếu lương theo yêu cầu.
Hôm nay mở ra viết lại cho cái file khác thì bị dính lỗi , mà tìm từ sáng giờ không ra cái lỗi sai , phải sửa như thế nào.

Và đoạn code đó thì chỉ kết xuất ra các nội dung cần kết xuất thôi. ( Khi nhấn nút Button tức là lệnh in ở sheet 1 )
Nhưng hôm nay em muốn có thểm một nội dung nữa. Đó là tiêu đề của bảng.
Đoạn code trong file chỉ là để kết xuất từ sheet 1 sang sheet 2 gồm nội dung và tiêu đề cột. Còn tiêu đề của bảng không xuất hiện, vậy em muốn thêm cái đó thì phải làm sao.
Rất mong các thầy, các anh chị, các bạn giúp cho em với.
Cám ơn mọi người rất nhiều.
 

File đính kèm

Code của bạn sửa như sau se chạy, chủ yếu bạn chỉ định biến chạy vượt phạm vi mảng nên phát sinh lỗi mà thôi.

Mã:
Sub Button1_Click()
Dim Dc As Long, Cl(), i, j, k 'Dat ky hieu ( chua hieu lam)
Dim Tm, Td, Kq() 'Dat ky hieu : Tm: noi dung can lay ; Td : tieu de can lay; Kq: ket qua hien ra
Dc = Sheet1.Range("A65536").End(xlUp).Row 'Vong lap
If Dc < 5 Then Exit Sub
ReDim Kq(1 To Int(Dc / 2) * 7 + 7, 1 To 6)  'Tang 2 so "*14+14," cot cuoi cung cua Cl bao nieu thi 2 so nay cung giong vay
Tm = Sheet1.Range("A4:F" & Dc) 'So thu tu dong can lay noi dung  la dong 5 cot A, den cot O
Td = Sheet1.[A3:F3] 'Tieu de can lay tu vung A4:O4
k = 1
Cl = Array(2, 3, 4, 5, 6) 'So thu tu cac cot can lay Data ( thay vì là 2 = B; 3 = C…….)
For i = 1 To UBound(Tm, 1) Step 2
For j = 0 To 4 'So cuoi cung cua Cl - 2 (Tru 2 )xuat hien them dong tieu de va noi dung
Kq(k + j, 2) = Td(1, Cl(j)) 'Sheet 6 : 2 là cot 2 noi dat tieu de (tuc la cot B) =
Kq(k + j, 3) = Tm(i, Cl(j)) 'Sheet 6 : 3 là cot 3 noi dat noi dung (tuc la cot C) =
Kq(k + j, 5) = Td(1, Cl(j)) 'Sheet 6 : 5 là cot 5 noi dat tieu de (tuc la cot E) =
Kq(k + j, 6) = Tm(i, Cl(j))  'Sheet 6 : 6 là cot 6 noi dat noi dung (tuc la cot F) =
Next j
k = k + 7 'So 14 nay chinh la so cuoi cung cua Cl
Next i
Sheet2.[A1:F65000].ClearContents 'Xoa tat ca noi dung trong vung cua sheet nay truoc khi xuat noi dung moi
Sheet2.[A1].Resize(UBound(Kq, 1), UBound(Kq, 2)) = Kq   ' Noi dung moi duoc dat bat dau tu ô A2 ( Vi A1 o day luon luon rong)
Sheet2.Select 'Chon sheet6
End Sub
 
Upvote 0
Sau khi kiểm tra đối chiếu giữa code của em và của anh, em thấy anh thay đổi như sau:
ReDim Kq(1 To Int(Dc / 2)....
Tm = sheet1.Range('A5 ....
For i = 0 To 6 .....
Kq(k + j, 6) = Tm(i, Cl(j)) : tai i cua em có +1 còn anh thì không

Thì khi em nhấn nút Button mỗi tên đều xuất hiện 2 lần, tức là 2 phiếu lương trùng nhau. Thêm +1 vào thì hết bị, vậy là sao hả anh.
Cám ơn.
 
Upvote 0

Bài viết mới nhất

Back
Top Bottom