我正在尝试使用PrintOut
方法使用VBA宏将特定工作表转换为PDF。我希望在运行宏时,活动工作表将转换为PDF并保存到SharePoint上的特定位置,其文件名与工作簿的文件名相同。
我有以下代码:
Target_File_Draft = ActiveSheet.Range("AJ21").Value & "\" & ActiveSheet.Range("AJ24").Value
*'Cell AJ21 contains the path to the SharePoint folder and AJ24 contains the name of the file. So Target_File_Draft takes on a value like: https://contoso.sharepoint.com/Site/ABClibrary/ABCFolder/FileXYZ.pdf*
' Print Draft Report
ActiveSheet.PrintOut ActivePrinter:="Microsoft Print to PDF", PrintToFile:=True, PrToFileName:=Target_File_Draft
当我运行这个宏时,我得到了
运行时错误1004:由于错误导致无法打印您的文件 Microsoft在e01上打印到PDF
有几个可能的原因:
我不认为这两个原因中的任何一个都适用于我的情况。
我做了一些调查,问题与PrToFileName
属性有关。看来我将这个值传递给这个变量是不对的。有没有人知道如何在使用printout方法时指定文件路径和文件名?
我正在使用Windows 10,从Excel 2016运行宏,处理SharePoint Online上的工作簿并尝试将PDF保存回SharePoint Online。
PS :由于其他限制(我们无法使用数字版权管理),我无法在宏中使用“另存为pdf”或“导出为pdf”方法。
答案 0 :(得分:0)
ActiveSheet.ExportAsFixedFormat类型:= xlTypePDF,文件名:= ActiveWorkbook.Path& " \" &安培;桌面和桌面" Monthly.pdf",质量:= xlQualityStandard,IncludeDocProperties:= True,IgnorePrintAreas:= False,OpenAfterPublish:= True