Hỏi: COde hoặc Macro save as file excel thành PDF

  • Thread starter Thread starter pro8x
  • Ngày gửi Ngày gửi
Liên hệ QC

pro8x

Thành viên hoạt động
Tham gia
3/11/11
Bài viết
142
Được thích
24
Hiện tại mình có 1 file excel. Mình đã viết macro để file này save As dưới dạng PDF khi chạy. Nhưng vấn đề là file Save As của mình lại phải thay đổi tên ở mỗi lần Save. Và tên này được lấy theo dữ liệu ở ô A1 của sheet 1. Bạn nào biết cách nào chỉ mình với
 
Hiện tại mình có 1 file excel. Mình đã viết macro để file này save As dưới dạng PDF khi chạy. Nhưng vấn đề là file Save As của mình lại phải thay đổi tên ở mỗi lần Save. Và tên này được lấy theo dữ liệu ở ô A1 của sheet 1. Bạn nào biết cách nào chỉ mình với
Thử thế này rồi sửa lại tên đường dẫn cho phù hợp
PHP:
Sub ExportFile()
    ActiveSheet.ExportAsFixedFormat 0, ThisWorkbook.Path & "\" & Sheet1.[A1]
End Sub
 
Lần chỉnh sửa cuối:
Upvote 0
Sub Macro1()
Dim wsh As Worksheet, vWshs
vWshs = Array("Sheet1", "Sheet3", "Sheet4")
For Each wsh In ActiveWorkbook.Worksheets
If IsError(Application.Match(wsh.Name, vWshs, 0)) Then
wsh.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
"C:\Tmp\" & wsh.Name, Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
End If
Next wsh
End Sub
 
Upvote 0
Thử thế này rồi sửa lại tên đường dẫn cho phù hợp
PHP:
Sub ExportFile()
    ActiveSheet.ExportAsFixedFormat 0, ThisWorkbook.Path & "\" & Sheet1.[A1]
End Sub
Bạn ơi muốn file save as này lưu sang thư mục khác thì làm thế nào. mình viết code nó toan báo lỗi 400 thôi.bạn chỉ mình với
 
Upvote 0
Bạn muốn lưu vàoo thư mục nào và code của bạn ra sao? Nói thê ai biết đường mà sửa
Mình muốn lưu vào D:\GDE. Đây là code của mình
Mã:
Sub Macro1()ActiveWorkbook.SaveAs Filename:=Range("A1").Value & "\" & Range("A2").Value
End Sub
trong đó A1: là chứa đường dẫn: D:\GPE
A2: là tên file ....pdf
 
Upvote 0
Mình muốn lưu vào D:\GDE. Đây là code của mình
Mã:
Sub Macro1()
ActiveWorkbook.SaveAs Filename:=Range("A1").Value & "\" & Range("A2").Value
End Sub
trong đó A1: là chứa đường dẫn: D:\GPE
A2: là tên file ....pdf

Code của anh Hải hướng dẫn rõ ràng là:
ActiveSheet.ExportAsFixedFormat...
Bạn lại viết khác:
ActiveWorkbook.SaveAs...
Giống đếch gì đâu chứ?
---------------
Sửa thành vầy:
Mã:
Sub Macro1()
  Dim wks As Worksheet
  Dim FileName As String
  Set wks = ActiveSheet
  FileName = wks.Range("A1").Value & "\" & wks.Range("A2").Value
  Worksheets.Select
  wks.ExportAsFixedFormat 0, FileName
  wks.Select
End Sub
 
Lần chỉnh sửa cuối:
Upvote 0
Xin chào mọi người!

Các Thầy cho em hỏi thêm câu này với ạ!
Giả sử 1 file của em có 10 sheets nhưng em muốn saveas ra PDF chỉ từ sheets 2 đến sheets 8
Nghĩa là có tất cả 8 file PDF được saveas ra. Và em muốn tên của các file PDFlần lươt được lấy teo từ địa chỉ từ ô A2:A8 của Sheets(1).từ trên xuống dưới.
Còn đường dẫn trong cùng thư mục như ở bài #2 của Thầy QuangHai ạ

Xin cám ơn!
 
Upvote 0
Giả sử 1 file của em có 10 sheets nhưng em muốn saveas ra PDF chỉ từ sheets 2 đến sheets 8
Nghĩa là có tất cả 8 file PDF được saveas ra. Và em muốn tên của các file PDFlần lươt được lấy teo từ địa chỉ từ ô A2:A8 của Sheets(1).từ trên xuống dưới.

Xin cám ơn!
Bạn thử code này xem sau
[GPECODE=vb]
Option Base 1
Sub SaveasPDF()

Dim FileName As String
Dim wsName, i As Long
wsName = Array("sheet2", "sheet3", "sheet4", "sheet5", "sheet6", "sheet7", "sheet8", "sheet9")
'Thay doi ten sheet cho phu hop voi ten sheet cua ban
For i = 1 To Ubound(wsName)
FileName = ThisWorkbook.Path & "\" & Sheet1.Cells(i + 1, 1).Value
Sheets(wsName(i)).Select
ActiveSheet.ExportAsFixedFormat 0, FileName
Next
End Sub

[/GPECODE]
 
Upvote 0
Code của anh Hải hướng dẫn rõ ràng là:
ActiveSheet.ExportAsFixedFormat...
Bạn lại viết khác:
ActiveWorkbook.SaveAs...
Giống đếch gì đâu chứ?
---------------
Sửa thành vầy:
Mã:
Sub Macro1()
  Dim wks As Worksheet
  Dim FileName As String
  Set wks = ActiveSheet
  FileName = wks.Range("A1").Value & "\" & wks.Range("A2").Value
  Worksheets.Select
  wks.ExportAsFixedFormat 0, FileName
  wks.Select
End Sub
Sao mình làm giống bạn rối mà nó vẫn báo :Gọi thủ tục không hợp lệ nhỉ? ( "Invalid procedure call or argument")
 
Upvote 0
Sao mình làm giống bạn rối mà nó vẫn báo :Gọi thủ tục không hợp lệ nhỉ? ( "Invalid procedure call or argument")
Giống là giống thế nào? Thay vì nói trăng nói sao thì tại sao bạn không gởi cái file lên có kèm code của bạn nhỉ?
 
Upvote 0
Lưu ý: Code chỉ chạy được trên Excel 2010. Nếu bạn dùng Excel 2007 thì không chạy được nha

Sao em thấy trong Help ghi thế này nên em nghĩ là 2007 vẫn xài được

Range.ExportAsFixedFormat Method
Exports to a file of the specified format.
Version Information
Version Added: Excel 2007

Syntax
expression.ExportAsFixedFormat(Type, Filename, Quality, IncludeDocProperties, IgnorePrintAreas, From, To, OpenAfterPublish)

 
Upvote 0
Sao em thấy trong Help ghi thế này nên em nghĩ là 2007 vẫn xài được

Range.ExportAsFixedFormat Method
Exports to a file of the specified format.
Version Information
Version Added: Excel 2007

Syntax
expression.ExportAsFixedFormat(Type, Filename, Quality, IncludeDocProperties, IgnorePrintAreas, From, To, OpenAfterPublish)

ExportAsFixedFormat có thể cho ra nhiều kiểu format, tuy nhiên trên Excel 2007 lại không hổ trợ kiểu PDF
Tôi thí nghiệm Save As bằng tay trên Excel 2007 và chẳng thấy mục nào là PDF cả
Bởi vậy tôi đoán: Nếu dùng Excel 2007 thì không thể dùng code này. Muốn tạo file PDF có lẽ phải cài chương trình Acrobat rồi dùng lệnh Print to PDF để thực hiện
(tóm lại: viết code kiểu khác)
 
Lần chỉnh sửa cuối:
Upvote 0
thảo nào.e dùng 2007 mà.nhưng theo em nếu cài addin save as pdf vào thì chắc vẫn chạy được. Vì bt 2007 k save as dưới dạng pdf được mà phải cài thêm vào mới save as pdf được
 
Upvote 0
em xin trân thành cảm ơn mọi người.Sau khi cài thêm Add-in: Microsoft Save as PDF ​thi đoạn code của mọi người hướng dẫn đã chạy ngon lành cành đào rồi ah. Em xin cảm ơn
 
Upvote 0
cho em hỏi muốn save as dbf file thì dùng code thế nào ạ? Mọi người giúp nhé, em đang cần gấp ạ. Em cảm ơn!
 
Upvote 0
cho em hỏi muốn save as dbf file thì dùng code thế nào ạ? Mọi người giúp nhé, em đang cần gấp ạ. Em cảm ơn!
Bạn phải đọc hết chủ đề chứ sẽ thấy mà :D
Code của bạn đây
Sub Macro1()
Dim wks As Worksheet
Dim FileName As String
Set wks = ActiveSheet
FileName = wks.Range("A1").Value & "\" & wks.Range("A2").Value
Worksheets.Select
wks.ExportAsFixedFormat 0, FileName
wks.Select
End Sub
 
Upvote 0
cho em hỏi muốn save as dbf file thì dùng code thế nào ạ? Mọi người giúp nhé, em đang cần gấp ạ. Em cảm ơn!

hình như bạn hỏi về DBF chứ không phải PDF như mọi người đang bàn trong chủ đề này?

nếu vậy bạn dùng lại XP đi, chứ từ excel 2007 anh bill không hỗ trợ nữa. (mấy cái chương trình chạy trên dos là còn xài.)
 
Upvote 0
Cho em hỏi 1 ý nữa được không ạ! trả là em đã xuất tự động lưu được PDF nhưng 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 ạ! Dưới là code của em để xuất File PDF chắc là gọn hơn trên ! mong anh chị giúp đỡ
filepdf = ThisWorkbook.Path & "\" & Range("G10") & ".pdf"
ActiveSheet.ExportAsFixedFormat xlTypePDF, filepdf
 
Upvote 0
Web KT

Bài viết mới nhất

Back
Top Bottom