如何解决使用 VBA Excel 中的 Workbook.PrintOut() 方法打印到 PDF 后获取位置或直接打开文件
我正在编写一个将整个工作簿导出为 PDF 文件的宏。
生成过程正常,但现在我想让它在完成后打开新生成的文件。问题是因为文件名不是预定义的,所以我不能简单地使用它的路径和名称打开它。
我使用 PrintOut 方法将之前选择的 ActivePrinter 生成为“Microsoft Print to PDF”,或者如果发生错误,则要求用户使用 Application.Dialogs(xlDialogPrinterSetup).Show
手动选择它。
这是这部分的片段:
Call set_printer
ActiveWorkbook.PrintOut Copies:=1,PrintToFile:=True
... 其中 set_printer() 是:
Public Sub set_printer()
On Error GoTo problem_with_pdf_printer
Application.ActivePrinter = "Microsoft Print to PDF"
Done: Exit Sub
problem_with_pdf_printer:
MsgBox "There is a problem with the Microsoft Print to PDF printer." & Chr(13) & Chr(13) & _
"Select another one manually!",vbInformation,"Warning!"
Application.Dialogs(xlDialogPrinterSetup).Show
End Sub
有没有办法在方法执行后捕获新的文件位置?我想到的另一个想法是自定义“选择文件位置”-对话可以帮助我预定义文件路径,但遗憾的是我不知道如何实现。
非常感谢您,如果您有任何建议和想法,我将非常高兴!
解决方法
转换为 pdf 似乎是要走的路。
Sub test()
Dim Wb As Workbook
Dim fn As String
Set Wb = ThisWorkbook
ChDir ThisWorkbook.Path 'C:\yourpath
fn = "test.pdf"
fn = Application.GetSaveAsFilename(fn,FileFilter:="PDF Files,*.pdf")
Wb.ExportAsFixedFormat xlTypePDF,fn,OpenAfterPublish:=True
End Sub
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。