Hỏi về code VBA chuyển file excel sang pdf
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")).SelectSheets("A").active
activesheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:="D:FileABC.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ị.
Bạn thử đoạn code này xem sao
ActiveSheet.ExportAsFixedFormat xlTypePDF, ThisWorkbook.FullName
www.giaiphapexcel.com/diendan/threads/h%E1%BB%8Fi-v%E1%BB%81-code-vba-chuy%E1%BB%83n-file-excel-sang-pdf.59491/
Khóa học Power PI – Ứng dung trong Nhân sự
TỔNG QUAN KHÓA HỌC: POWER BI CHO NGÀNH NHÂN SỰ Khóa học Power BI cho Nhân sự được thiết kế dành riêng cho các...
Xem khóa học
Thử thế này:
filepdf = ThisWorkbook.Path & "" & Range("G10") & ".pdf"
ActiveSheet.ExportAsFixedFormat xlTypePDF, filepdf
– 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:UsersChungNguyenPCDesktop" & "" & 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.
Thử thay như thế này xem.
– Thêm giờ thì Hour(now())
Dùng Format(now(),"hh-mm-ss")
Thêm giờ-phút-giây thì vẫn có thể trùng!!!
– Đoạn code của bạn, hoàn toàn bình thường, vấn đề còn lại là cai range("O2").value của bạn nó chứa cái gì?
– Và bạn đang đứng ở Sheet nào để chạy code, vì cái đoạn bạn khai báo không tuong minh, nên rất dễ bị nhầm lẫn Sheet.
Bạn upfile lên là rõ nhất. Không có File, nói ra ai cũng hiểu, mà sau cùng là mỗi ngưởi hiểu một hướng khác nhau.
Bạn thêm câu lệnh:
phía sau đoạn:
=> là được.
Đại khái thế này: