Macro để lưu tệp Excel dưới dạng PDF

Tôi đang chạy một macro đơn giản trên một biểu mẫu, khi được chọn, nó sẽ mở khóa bảng tính, lưu tệp dưới dạng PDF vào một thư mục được chỉ định, xóa các ô đã chọn, khóa lại, lưu và đóng biểu mẫu.

Tôi đã thử nghiệm trên nhiều máy tính khác nhau và nó hoạt động tốt trên một số máy nhưng lại báo lỗi trên những máy khác. Khi gỡ lỗi, bạn sẽ thấy dòng này được tô sáng - ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=strPath -. Tôi có đang bỏ sót điều gì không?

Đây là macro:

Sub Macro1()

'
ActiveSheet.Unprotect Password:="xxxxxxx"

' Khai báo strPath dưới dạng chuỗi
Dim strFolderPath As String

strFolderPath = "H:\Emergency Payment Invoices\"

strPath = strFolderPath & _
Sheet1.Range("c2").Value & _
Sheet1.Range("i8").Value & _
Sheet1.Range("B3").Value & ".pdf"

ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=strPath

ActiveSheet.Protect Password:="xxxxxxx"

ActiveWindow.SelectedSheets.PrintOut Copies:=1

Phạm vi ("d10"). Chọn
Lựa chọn.Xóa nội dung
Phạm vi ("d16:r18").Chọn
Lựa chọn.Xóa nội dung
Phạm vi ("d20"). Chọn
Lựa chọn.Xóa nội dung
Phạm vi ("d25:l30"). Chọn
Lựa chọn.Xóa nội dung
Phạm vi ("n25:r30"). Chọn
Lựa chọn.Xóa nội dung
Phạm vi ("h34").Chọn
Lựa chọn.Xóa nội dung
Phạm vi ("e37"). Chọn
Lựa chọn.Xóa nội dung
Phạm vi ("o37"). Chọn
Lựa chọn.Xóa nội dung
Phạm vi ("e41"). Chọn
Lựa chọn.Xóa nội dung
Phạm vi ("o41"). Chọn
Lựa chọn.Xóa nội dung
Phạm vi ("d10"). Chọn

ActiveWorkbook.Save
ActiveWorkbook.Close

End Sub




Trả lời:

Bạn có thể sử dụng đoạn mã như sau:

Const strPath = "H:\Emergency Payment Invoices"
Dim fso As Object
Đặt fso = CreateObject("Scripting.FileSystemObject")
Nếu fso.FolderExists(strPath) = False thì
fso.CreateFolder strPath
Kết thúc nếu
Đặt fso = Không có gì

hoặc

Const strPath = "H:\Emergency Payment Invoices\"
Nếu Dir(strPath, vbDirectory) = "" thì
MkDir strPath
Kết thúc nếu

Comments

Popular posts from this blog

Xử lý hàng loạt các tệp Excel được bảo vệ bằng mật khẩu

Thu hẹp và mở rộng cột trong Excel

Excel: Tìm và trả về "số cuối cùng" trong một cột, trong đó cột chứa: cả ô trống và số dương tùy ý (lớn hơn 0).