Em muốn hiển thị lệnh in phiếu lương nối tiếp nhau thành các trang trong PrinPreview để có thể chọn lệnh in 1 lần in được hàng loạt
Nhờ thầy hướng dẫn ạ
Chào bạn bạn thực hiện vòng lặp nhé, mỗi lần lặp sẽ thay đổi mã nhân viên 1 lần để nhập vào nhé.
Em đã thực hiện để in phiếu lương
Tuy nhiên mỗi vòng lặp lại cần thực hiện 1 thao tác lệnh in
Em muốn chỉ cần thực hiện 1 thao tác in cho hàng loạt ạ
Việc in em đã viết xong rồi ạ
Ví dụ em muốn in 10 người (mỗi người 1 trang) thì lệnh sẽ hiện thị 10 lần 1 trang
Nếu em muốn hiển thị 10 người vào 1 lệnh PrintPreview 10 trang thì làm như nào ạ
Chào bạn, bạn đọc bài này
https://docs.microsoft.com/en-us/offi...
phần Copies là số lượng bản in của bạn nhé.
Em đặt lệnh in theo số thứ tự i theo câu lệnh
Mã nhân viên sẽ chạy theo thứ tự i này ạ
Chào bạn trong phần này
expression.PrintOut (From, To, Copies, Preview, ActivePrinter, PrintToFile, Collate, PrToFileName, IgnorePrintAreas)
có phần Copies là số lần lặp lại của bạn ghi và Collate là tuỳ chọn in nhiều bản 1 lần hay 1 bản một lần, bạn tuỳ chỉnh tham số nhé.
"Pages" in the descriptions of From and To refers to printed pages, not overall pages in the sheet or workbook.
Đây là sử dụng cho chọn in từ trang nào đến trang nào chứ không gộp các phiếu lương chạy theo vòng lặp vào 1 sheet nhiều trang để in ạ
Chào bạn bạn xem code dưới nhé
ActiveSheet.PrintOut ActivePrinter:=tên máy in, copies:=số lượng bản in, collate:=true/false
Em không thể xử lý được ạ
Nhờ thầy giúp em phần code này ạ
Sub InPhieuLuong()
Dim i As Integer
Dim BatDau As Integer
Dim KetThuc As Integer
BatDau = Sheet2.Range("Ak5").Value
KetThuc = Sheet2.Range("AM5").Value
For i = BatDau To KetThuc
Sheet2.Range("AF1").Value = i
Sheet2.PrintPreview
Next i
' In phieu luong hang loat
ActiveSheet.PrintOut ActivePrinter:="RICOH Aficio MP 7001 PCL 6", copies:=1, collate:=True / False
End Sub
Chào bạn bạn thay sau nhé:
ActiveSheet.PrintOut ActivePrinter:="RICOH Aficio MP 7001 PCL 6", copies:=số lượng file muốn in, collate:=True
Em đã thử lệnh này chỉ in ra phiếu lương biến i cuối cùng và không cho phép xem
Nếu muốn xem và lựa chọn properties của máy in để điều chỉnh in, khổ giấy thì sao ạ
Chào bạn, bạn cần tuỳ chỉnh trước khi in nhé.
Vâng ạ
Thầy hướng dẫn em code để gửi mail bằng outlook cho từng trường hợp vòng lặp i với ạ
Chào bạn bạn cần xuất file ra trước rồi add vào Outlook nhé bạn chỉ cần dùng vòng lặp và tham khảo bài viết sau:
Em không đính kèm file gửi cùng được ạ
Chào bạn bạn xem đã đúng đường đẫn chưa ạ?
Em xem hướng dẫn từ đây nhưng không thể xử lý đính kèm file được ạ
https://gitiho.com/blog/huong-dan-gui...
Email đã gửi được nhưng trong mail không có file
Nhờ thầy xem lại code giúp em ạ
Sub GuiEmail()
Dim FileName As String
Dim FileFormatNum As Long
Dim WB As Workbook
Dim OutApp As Object
Dim OutMail As Object
FileName = WB.FullName
Dim i As Integer
Dim BatDau As Integer
Dim KetThuc As Integer
BatDau = Sheet2.Range("Ak5").Value
KetThuc = Sheet2.Range("AM5").Value
For i = BatDau To KetThuc
Sheet2.Range("AF1").Value = i
xIndex = VBA.InStrRev(FileName, ".")
If xIndex > 1 Then FileName = VBA.Left(FileName, xIndex - 1)
FileName = FileName & "_" + ActiveSheet.Name & ".pdf"
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, FileName:=FileName
Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(olMailItem)
On Error Resume Next
With OutMail
.To = Trim(Sheet2.Range("AK3").Value)
.cc = ""
.Subject = "PHIEU LUONG 11/2020"
.Body = "Vui long kiem tra thong tin luong"
.Attachments.Add FileName
'.Display
.Send
End With
On Error GoTo 0
Set OutMail = Nothing
Set OutApp = Nothing
With Application
.ScreenUpdating = True
.EnableEvents = True
End With
MsgBox ("Send Mail Completed!")
Next i
End Sub
nghĩa là phần xuất ra pdf, bạn kiểm tra đã có file pdf đã xuất ra chưa?
vâng ạ phần này đang lỗi, em không xử lý được
Thầy hỗ trợ em ạ
Chào bạn phần đầu tiên bạn cần xuất file ra pdf đã, rồi để trong một thư mục có tên xác định nhé.