2015-09-24 125 views
1

我正在处理包含20个以上Excel文件的文件夹,并且希望打开它们中的每一个,进行一些页面设置更改,最后另存为.pdf。我几乎涵盖了所有主题,除了保存为.pdf。将Excel工作簿另存为.pdf

我需要将该文件保存为与Excel工作簿相同的名称。在同一个文件夹中。

下面的代码做这项工作,除了我需要给的名称,然后选择文件夹来保存它:

fName = Application.GetSaveAsFilename("", "PDF Files (*.pdf), *.pdf") 
ActiveWorkbook.ExportAsFixedFormat xlTypePDF, fName, xlQualityStandard, , , , , True 

来源:http://www.mrexcel.com/forum/excel-questions/651621-save-pdf-macro.html#post3232801

有人可以帮我优化这个实现我的目标?

+0

第一次尝试使用对象为工作簿,而不是ActiveWorkbook。然后存储工作簿的全名并更改扩展名。例如'Set oWB = Workbooks.Open(...)','fName = oWB.FullName','fName = Replace(fName,“。xlsx”,“。pdf”)'您不需要GetSaveAsFilename来实现自动化。 – PatricK

+0

不清楚我需要在这里做什么。 设置owb = Workbooks.Open(....) – Isu

回答

0

试试这个(我没有打印机的设置,从而无法进行测试)

fName = ActiveWorkbook.FullName 

If InStr(fName, ".") > 0 Then fName = Left(fName, InStrRev(fName, ".") - 1) 

ActiveWorkbook.ExportAsFixedFormat xlTypePDF, fName & ".pdf", _ 
            xlQualityStandard, , , , , True 
+1

这对我来说非常合适。 – Isu

+1

让我们希望@Isu_Wick在文件扩展名之前没有带'.'的excel文件。 – PatricK

+0

@PatricK:好点!我更新它使用InStrRev() –

相关问题