Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用于从Excel创建PDF的VBA脚本进入打印机,并且不会';t导出文件_Excel_Vba_Macos_Pdf_Export - Fatal编程技术网

用于从Excel创建PDF的VBA脚本进入打印机,并且不会';t导出文件

用于从Excel创建PDF的VBA脚本进入打印机,并且不会';t导出文件,excel,vba,macos,pdf,export,Excel,Vba,Macos,Pdf,Export,我的以下代码在Windows计算机上运行良好,但自从我使用MacBook后,它给我带来了问题: 使用ActiveSheet的 Fname=“工资单-”+员工姓名+”-“+月份+”.pdf” .ExportAsFixedFormat类型:=xlTypePDF,文件名:=_ salarySlipsFolderPath&Fname,质量:=xlQualityStandard_ IncludeDocProperties:=真,IgnorePrintAreas:=假, OpenAfterPublish:=

我的以下代码在Windows计算机上运行良好,但自从我使用MacBook后,它给我带来了问题:

使用ActiveSheet的

Fname=“工资单-”+员工姓名+”-“+月份+”.pdf”
.ExportAsFixedFormat类型:=xlTypePDF,文件名:=_
salarySlipsFolderPath&Fname,质量:=xlQualityStandard_
IncludeDocProperties:=真,IgnorePrintAreas:=假,
OpenAfterPublish:=False
以
而不是导出为PDF文件(在Windows上的工作方式与此类似),而是向打印机发送打印文件的请求。我错过了什么


我使用的是MacOS Catalina 10.15.4,运行MS Excel for MAC 16.40版。

如果用作变量的一个单元格值包含斜杠(例如,
month
as 2020/01/01中的日期),PDF文件的命名过程将失败,并将其发送到打印机。我有好几个绝望的小时

试一试

ChDir "/" & ActiveWorkbook.Path
作为
子部分的第一行

fileName:= _
    "/" & salarySlipsFolderPath & Fname, Quality:=xlQualityStandard, _

作为文件名。开始时的
“/”
使它对我起作用。

如果用作变量的一个单元格值包含斜杠(例如,2020/01/01月份的日期),PDF文件的命名过程将失败,并将其发送到打印机。我有好几个绝望的小时

试一试

ChDir "/" & ActiveWorkbook.Path
作为
子部分的第一行

fileName:= _
    "/" & salarySlipsFolderPath & Fname, Quality:=xlQualityStandard, _

作为文件名。开始时的
“/”
使其适合我。

尝试手动将文件导出为PDF并录制宏,您可以将录制的代码用于实际代码。@usmanhaq我尝试过,但宏录制没有捕获导出过程。我尝试了COMMAND+P快捷方式,并通过“文件”菜单进入“打印”菜单。我没有Mac电脑可以尝试此操作,但我想知道这是否有帮助:尝试在代码前设置
Application.PrintCommunication=False
,然后在代码后返回True。尝试手动将文件导出为PDF并录制宏,您可以获取录制的代码并在实际代码中使用。@usmanhaq我尝试过,但宏录制没有捕获导出过程。我尝试了COMMAND+P快捷方式,并通过“文件”菜单进入“打印”菜单。我没有Mac电脑可以尝试这一点,但我想知道这是否有帮助:在代码之前尝试设置
Application.PrintCommunication=False
,然后在代码之后返回True。