Excel VBA Lưu dưới dạng (In) sang PDF

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
wave wave wave wave wave