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

sonick1988

Thành viên mới
Tham gia ngày
27 Tháng mười hai 2011
Bài viết
3
Được thích
3
Điểm
0
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:

nguyenvanthang1311

Thành viên mới
Tham gia ngày
16 Tháng sáu 2009
Bài viết
1
Được thích
0
Điểm
0
Tuổi
30
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 !!!!
 

nmhung49

Thành viên tích cực
Tham gia ngày
20 Tháng tám 2009
Bài viết
1,187
Được thích
1,325
Điểm
560
Tuổi
32
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. Cảm ơn
 

File đính kèm

Chỉnh sửa lần cuối bởi điều hành viên:

locphat6868

Thành viên mới
Tham gia ngày
15 Tháng hai 2016
Bài viết
8
Được thích
0
Điểm
0
Tuổi
28
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
 

hoangalone

Thành viên mới
Tham gia ngày
5 Tháng hai 2012
Bài viết
10
Được thích
0
Điểm
363
Tuổi
30
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ợ
 

cao quân

Thành viên mới
Tham gia ngày
14 Tháng mười 2009
Bài viết
1
Được thích
0
Điểm
0
Tuổi
31
Bạn thử đoạn code này xem sao
PHP:
ActiveSheet.ExportAsFixedFormat xlTypePDF, ThisWorkbook.FullName
Bác cho em hỏi. Em dùng code như trên nhưng báo lỗi :
" Invalid procedure call or argument "
Xin chỉ giúp em cách khắc phục ạ! Em dùng excel 2007
 

quanluu1989

Thành viên gắn bó
Tham gia ngày
11 Tháng tư 2013
Bài viết
1,989
Được thích
1,076
Điểm
560
Nơi ở
Nam Định/Thái Nguyên

phanvantruong

Thành viên mới
Tham gia ngày
1 Tháng bảy 2010
Bài viết
49
Được thích
1
Điểm
365
Nơi ở
Hà Nội
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.
Cảm ơn
 

phuyen89

Thành viên tích cực
Tham gia ngày
20 Tháng mười một 2008
Bài viết
867
Được thích
329
Điểm
735
Tuổi
30
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.
 

duchoa89

Thành viên mới
Tham gia ngày
11 Tháng mười 2016
Bài viết
47
Được thích
0
Điểm
0
Tuổi
30
- 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 ạ.
 

duchoa89

Thành viên mới
Tham gia ngày
11 Tháng mười 2016
Bài viết
47
Được thích
0
Điểm
0
Tuổi
30
- 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:

ndu96081631

Huyền thoại GPE
Thành viên BQT
Super Moderator
Tham gia ngày
5 Tháng sáu 2008
Bài viết
30,166
Được thích
52,324
Điểm
11,910
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 ạ!
Xem chỗ này:
http://www.giaiphapexcel.com/diendan/threads/tự-động-lưu-file-pdf-cần-khắc-phục-tình-trạng-trùng-tên-bị-xóa-file-cũ.126069/#post-793898
 

duchoa89

Thành viên mới
Tham gia ngày
11 Tháng mười 2016
Bài viết
47
Được thích
0
Điểm
0
Tuổi
30
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
 
Top