Hướng dẫn này sẽ trình bày cách lưu / in thành PDF trong Excel VBA.
In sang PDF
Quy trình đơn giản này sẽ in ActiveSheet thành PDF.
123456 | Sub SimplePrintToPDF ()ActiveSheet.ExportAsFixedFormat Loại: = xlTypePDF, Tên tệp: = "demo.pdf", Chất lượng: = xlQualityStandard, _Bao gồmDocProperties: = Sai, Bỏ quaPrintAreas: = Sai, OpenAfterPublish: = ĐúngKết thúc Sub |
Tôi cũng đã tạo một hàm xử lý lỗi, v.v. sẽ in ActiveSheet thành PDF:
12345678910111213141516171819202122232425262728293031323334353637383940 | Sub PrintPDF ()Gọi Save_PDFKết thúc SubHàm Save_PDF () As Boolean 'Sao chép trang tính vào tệp PDF mới để gửi e-mailDim Thissheet As String, ThisFile As String, PathName As StringLàm mờ SvA dưới dạng chuỗiApplication.ScreenUpdating = Sai'Lấy tên lưu tệpThissheet = ActiveSheet.NameThisFile = ActiveWorkbook.NamePathName = ActiveWorkbook.PathSvAs = PathName & "\" & Thissheet & ".pdf"'Đặt chất lượng inKhi có lỗi Tiếp tục tiếp theoActiveSheet.PageSetup.PrintQuality = 600Err.ClearLỗi GoTo 0'Hướng dẫn người dùng cách gửiLỗi GoTo RefLibErrorActiveSheet.ExportAsFixedFormat Loại: = xlTypePDF, Tên tệp: = SvAs, Chất lượng: = xlQualityStandard, Bao gồmDocProperties: = Sai, Bỏ quaPrintAreas: = Sai, OpenAfterPublish: = ĐúngLỗi GoTo 0Chỉ tiết kiệm:MsgBox "Bản sao của trang tính này đã được lưu thành công dưới dạng tệp .pdf:" & Chr (13) & Chr (13) & SvAs & _"Xem lại tài liệu .pdf. Nếu tài liệu KHÔNG đẹp, hãy điều chỉnh các thông số in của bạn và thử lại."Save_PDF = TrueGoTo EndMacroRefLibError:MsgBox "Không thể lưu dưới dạng PDF. Không tìm thấy thư viện tham khảo."Save_PDF = SaiEndMacro:Chức năng kết thúc |
Hàm trả về TRUE hoặc FALSE nếu quá trình in sang PDF thành công hay không.
Lưu và gửi email chức năng PDF
Chức năng này sẽ lưu ActiveSheet dưới dạng PDF và (tùy chọn) đính kèm PDF vào email (giả sử bạn đã cài đặt Outlook):
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 | Sub Test_Save_PDF ()Gọi Send_PDF ("SendEmail")Kết thúc SubHàm Send_PDF (Hành động tùy chọn As String = "SaveOnly") As Boolean 'Sao chép trang tính vào tệp PDF mới để gửi e-mailDim Thissheet As String, ThisFile As String, PathName As StringLàm mờ SvA dưới dạng chuỗiApplication.ScreenUpdating = Sai'Lấy tên lưu tệpThissheet = ActiveSheet.NameThisFile = ActiveWorkbook.NamePathName = ActiveWorkbook.PathSvAs = PathName & "\" & Thissheet & ".pdf"'Đặt chất lượng inKhi có lỗi Tiếp tục tiếp theoActiveSheet.PageSetup.PrintQuality = 600Err.ClearLỗi GoTo 0'Hướng dẫn người dùng cách gửiLỗi GoTo RefLibErrorActiveSheet.ExportAsFixedFormat Loại: = xlTypePDF, Tên tệp: = SvAs, Chất lượng: = xlQualityStandard, Bao gồmDocProperties: = Sai, Bỏ quaPrintAreas: = Sai, OpenAfterPublish: = ĐúngLỗi GoTo 0' Gửi emailIf action = "SendEmail" Sau đóCó lỗi GoTo SaveOnlyApplication.Dialogs (xlDialogSendMail) .ShowLỗi GoTo 0GoTo EndMacroKết thúc nếuChỉ tiết kiệm:MsgBox "Bản sao của trang tính này đã được lưu thành công dưới dạng tệp .pdf:" & Chr (13) & Chr (13) & SvAs & _"Xem lại tài liệu .pdf. Nếu tài liệu KHÔNG đẹp, hãy điều chỉnh các thông số in của bạn và thử lại."Send_PDF = TrueGoTo EndMacroRefLibError:MsgBox "Không thể lưu dưới dạng PDF. Không tìm thấy thư viện tham khảo."Send_PDF = SaiEndMacro:Chức năng kết thúc |