Virtual Print Code như thế nào để in hàng loạt file Excel ra PDF?

Liên hệ QC

sadboy309

Thành viên mới
Tham gia
17/11/11
Bài viết
23
Được thích
2
Ví dụ như em có nhiều Sheet, em muốn in mỗi Sheet ra 1 file PDF làm tài liệu gửi đi... Em đã cài đặt trình Print PDF rồi nhưng em muốn dùng code để tuỳ biến tên hoặc 1 số dòng dữ liệu riêng trên sheetPrintView -> Vậy em làm sao để thay đổi thuộc tính Name cho máy in ảo và thuộc tính Print range của máy in ảo đó?
Mong các anh (chị) giúp em code đó.
Xin cảm ơn.
 
Bạn muốn thay đổi vùng in:
Mã:
ActiveSheet.PageSetup.PrintArea =[B][COLOR=#ff0000] "$A$1:$E$18"
[/COLOR][/B]
Bạn muốn thay đổi tên máy in:
Mã:
ActiveWindow.SelectedSheets.PrintOut From:=i, To:=i, Copies:=1, [B][COLOR=#ff0000]ActivePrinter:="PDF Creator Plus", [/COLOR][/B]Collate:=True
Bạn thay đổi phần chữ đỏ nhé.
 
Upvote 0
Xin lỗi, em làm code ví dụ như vầy nhưng khi chạy xong thì trình Print PDF nó còn hỏi địa chỉ và tên file PDF lưu trữ nữa đó bác ơi. Bác giúp cho em thêm code để nạp đoạn text vào trong cửa sổ đó lun được không?
Cảm ơn bác nhiều.
Mã:
Sub test()
ActiveSheet.PageSetup.PrintArea = "$A$1:$E$18"
Sheet1.PrintOut From:=1, To:=1, Copies:=1, ActivePrinter:="doPDF v7", Collate:=True
End Sub
Em dùng trình PDF:
dopdf-7_PDF-Printer.rar
 

File đính kèm

  • Untitled.jpg
    Untitled.jpg
    69.4 KB · Đọc: 61
Upvote 0
Xin lỗi, em làm code ví dụ như vầy nhưng khi chạy xong thì trình Print PDF nó còn hỏi địa chỉ và tên file PDF lưu trữ nữa đó bác ơi. Bác giúp cho em thêm code để nạp đoạn text vào trong cửa sổ đó lun được không?
Cảm ơn bác nhiều.
Mã:
Sub test()
ActiveSheet.PageSetup.PrintArea = "$A$1:$E$18"
Sheet1.PrintOut From:=1, To:=1, Copies:=1, ActivePrinter:="doPDF v7", Collate:=True
End Sub
Em dùng trình PDF:
dopdf-7_PDF-Printer.rar
Trong cửa số ấy, bạn có thấy mục "Always ues thí folder" không? Bạn chọn đường dẫn nào đó, xong hãy check mục này thì tôi nghĩ lần sau nó sẽ không hỏi nữa
 
Upvote 0
nhìn dạng cửa sổ của bạn thì bạn đang xài win7 ? thường thì xài luôn office 2010 ?

nếu đúng vậy bạn code để ẽxport range đó ra thành file PDF, chứ ko thể tự động đổi với doPDF đâu.
ví dụ :
Mã:
    Selection.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
        "D:\Book1.pdf", Quality:=xlQualityStandard, _
        IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
        False

hoặc trường hợp cụ thể của bạn thì
Mã:
Sub exporteachsheettoonepdf()
Dim sh As Worksheet
For Each sh In Worksheets
 pdfFilename = "E:\" & sh.Name & ".pdf"
sh.ExportAsFixedFormat Type:=xlTypePDF, Filename:= pdfFilename, Quality:=xlQualityStandard, _
        IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= False
Next sh
msgbox "Done"
End Sub
 
Lần chỉnh sửa cuối:
Upvote 0
Dạ, xin cảm ơn mọi người nhiều. Em dùng Win 7 nhưng Office là 2007 ah ^^ :D
Thanks.
 
Upvote 0
ôfffice 2007 hình như đã có tính năng này rồi, bạn cứ thử code trên xem sao ? Hoặc ai đang dùng office 2007 thử giùm mình xem code trên có chạy không ? tks
 
Upvote 0
OK. Code chạy tốt rùi anh ah... Cảm ơn mọi người nhiều lắm ^^ :D
 
Upvote 0
Web KT
Back
Top Bottom