Hỏi về code VBA chuyển file excel sang pdf

Liên hệ QC

sonick1988

Thành viên mới
Tham gia
27/12/11
Bài viết
3
Được thích
5
Chào các anh chị, do công việc yêu cầu nên em thường xuyên phải xuất file từ *.xls hoặc *.xlsx sang *.PDF
Ví dụ: Em đang làm việc với file ABC.xlsx (sử dụng Office 2010) trong thư mục D:\File (do yêu cầu công việc nên em thường xuyên phải copy folder này ra và đổi tên để theo dõi). Khi em viết code để chuyển 1 số sheet trong file ABC.xlsx này sang file ABC.pdf như sau:

Sub chuyenfile()
'
' chuyenfile Macro
'
'
Sheets(Array("A", "B", "C")).Select

Sheets("A").active

activesheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:="D:\File\ABC.pdf", Quality:= xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=True

End Sub

Tuy nhiên, với đoạn code trên thì khi em copy folder này và đổi tên folder (ví dụ là folder XYZ) thì file ABC.xlsx trong folder XYZ khi chuyển thành file ABC.pdf trong folder D:\File (hoặc báo lỗi nếu tên folder File đã ko còn trong D:\),
Em nhờ các anh chị giúp em đoàn code thế nào cho khi xuất thành file .pdf thì file đó sẽ được lưu trong folder hiện hành đang làm việc. (trong ví dụ trên khi em copy và đổi tên folder File thành folder XYZ thì khi em thao tác trên file ABC.xlsx trong folder sẽ tự động xuất và lưu file ABC.pdf trong folder XYZ mà không cần phải vào chỉnh sửa trong code trong VBA).
Hoặc em nhờ các anh chị có thể giúp em đoạn code sau khi đã chọn các sheet trong file ABC.xlsx thì sẽ tự động hiện cửa sổ Save As không? (vì em sử dụng Office 2010, khi hiện cửa sổ Save As thì có hỗ trợ chuyển sang file PDF mà không cần phần mềm khác hỗ trợ như các phiên bản Office trước đây).
Chân thành cám ơn các anh chị.
 
Lần chỉnh sửa cuối:
mấy huynh ơi!
em muốn tìm một code để xuất 1 sheet bất kỳ nào sang file pdf. nhưng tim mãi không thấy. mong mấy huynh có thể giúp em dc ko. chỉ em cụ thể thì càng tốt ạ. Cảm ơn mấy huynh trước !!!!
 
Upvote 0
mấy huynh ơi!
em muốn tìm một code để xuất 1 sheet bất kỳ nào sang file pdf. nhưng tim mãi không thấy. mong mấy huynh có thể giúp em dc ko. chỉ em cụ thể thì càng tốt ạ. Cảm ơn mấy huynh trước !!!!

Xin cho mình hỏi trong máy bạn có cài thêm chương trinh hỗ trợ xuất sang PDF không. Ví dụ CutePDF, ...v..vv
Hoặc trong Save, Save as của Office Excel, giống như hình này. Hinh đính kèm của em bị lỗi Mod sửa lại giúp. Thanks
 

File đính kèm

  • 123.jpg
    123.jpg
    16.3 KB · Đọc: 380
Chỉnh sửa lần cuối bởi điều hành viên:
Upvote 0
Nhờ A/C code giúp e với
VBA xuất từ excel sang pdf với điều kiện như sau:
Đặt tên file xuất sang pdf theo tên thay đổi theo giá trị tại ô G10 (G10 là giá trị nằm trong danh sách)
vd: Nếu ô G10 là A thì xuất đặt tên file pdf là A.pdf
Nếu ô G10 là B thì xuất đặt tên file pdf là B.pdf
Nếu ô G10 là C thì xuất đặt tên file pdf là C.pdf

Chân thành cám ơn
 
Upvote 0
Nhờ A/C code giúp e với
VBA xuất từ excel sang pdf với điều kiện như sau:
Đặt tên file xuất sang pdf theo tên thay đổi theo giá trị tại ô G10 (G10 là giá trị nằm trong danh sách)
vd: Nếu ô G10 là A thì xuất đặt tên file pdf là A.pdf
Nếu ô G10 là B thì xuất đặt tên file pdf là B.pdf
Nếu ô G10 là C thì xuất đặt tên file pdf là C.pdf

Chân thành cám ơn

Em cũng đang thắc mắc vấn đề này.Nhờ A/C hỗ trợ
 
Upvote 0
Bạn thử đoạn code này xem sao
PHP:
ActiveSheet.ExportAsFixedFormat xlTypePDF, ThisWorkbook.FullName
Chào A
E có 1 sheet (sheet này chạy cho 7 lot "đã chạy bằng biến" giờ xuất khác nhau) cần in 3 liên (kế toán, kho, khách hàng) cần in ra pdf nhưng chưa nghĩ ra cách viết code.
A chỉ giúp e với.
Thanks
 
Upvote 0
Em muốn lưu ở chỗ khác ngoài dekop thì phải làm sao anh! chỉ em với

- Có 02 cách.
+ Cách 1: Bạn copy cái file bạn đang làm đó, ra ngoài desktop, thì khi bạn chạy code, nó sẽ lưu ngoài Desktop cho bạn.
+ Cách 2: Sửa lại đường dẫn lưu File từ ThisWorkbook.Path & "\" & Range("G10") & ".pdf" thành "C:\Users\ChungNguyenPC\Desktop" & "\" & Range("G10") & ".pdf"
Ví dụ thôi nhé, vì đường dẫn của bạn, đường dẫn của Folder phụ thuộc vào Windows, và User nữa.
 
Upvote 0
- Có 02 cách.
+ Cách 1: Bạn copy cái file bạn đang làm đó, ra ngoài desktop, thì khi bạn chạy code, nó sẽ lưu ngoài Desktop cho bạn.
+ Cách 2: Sửa lại đường dẫn lưu File từ ThisWorkbook.Path & "\" & Range("G10") & ".pdf" thành "C:\Users\ChungNguyenPC\Desktop" & "\" & Range("G10") & ".pdf"
Ví dụ thôi nhé, vì đường dẫn của bạn, đường dẫn của Folder phụ thuộc vào Windows, và User nữa.
Cảm ơn anh nhìu lắm ạ.
 
Upvote 0
- Có 02 cách.
+ Cách 1: Bạn copy cái file bạn đang làm đó, ra ngoài desktop, thì khi bạn chạy code, nó sẽ lưu ngoài Desktop cho bạn.
+ Cách 2: Sửa lại đường dẫn lưu File từ ThisWorkbook.Path & "\" & Range("G10") & ".pdf" thành "C:\Users\ChungNguyenPC\Desktop" & "\" & Range("G10") & ".pdf"
Ví dụ thôi nhé, vì đường dẫn của bạn, đường dẫn của Folder phụ thuộc vào Windows, và User nữa.
Cho em hỏi thêm 1 ý nữa được không ạ! trả là có lúc em in 1 phiếu 2 lần cùng tên thì toàn phiếu sau đè mất phiếu trước ! vậy có cách nào để phiếu sau có (1) hoặc (2) được không ạ. hay 1,2,3,4,5,6... cũng đc chỉ cần giữ được tên là đc ạ!
 
Lần chỉnh sửa cuối:
Upvote 0
Upvote 0
Giờ còn đúng 1 việc cần nhờ ! là thêm giờ và phút thực tế vào tên file để không bị trùng nhau!
filepdf = ThisWorkbook.Path & "\" & Range("G10") & ".pdf"
ActiveSheet.ExportAsFixedFormat xlTypePDF, filepdf
 
Upvote 0
Web KT
Back
Top Bottom