在Mac OS上保存为PDF的My Excel VBA有时不起作用。
它将给予
“打印时出错”
然后
“运行时错误'1004':应用程序定义的错误或对象定义的错误”。
我的代码昨天有效:
'a) For Windows
Dim wksSheet As Worksheet, PS As String
PS = Application.PathSeparator
If InStr(1, Application.OperatingSystem, "Windows") > 0 Then
Set wksSheet = ActiveSheet
wksSheet.ExportAsFixedFormat Type:=xlTypePDF, FileName:= _
ThisWorkbook.Path & PS & pdfName, Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
False
'Exit Sub
Else
'b) For MAC
Dim pdfName As String, FullName As String
pdfName = "Q - " & Range("F2").Value & " - " & Range("A2").Value & " - " & Range("B10").Text
FullName = "/Users/" & QTGetUserNameMAC & "/Google Drive/ABC Pte Ltd/Q - Quotations/" _
& pdfName & ".pdf"
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, FileName:=FullName _
, Quality:=xlQualityMinimum, IncludeDocProperties:=True, IgnorePrintAreas _
:=False, OpenAfterPublish:=False
End If
我记录了宏并使用了代码中生成的代码(如下所示)。有用。但是,如果删除代码中的最后一个'9',则会出现上述错误。
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, FileName:= _
"/Users/" & QTGetUserNameMAC & "/Google Drive/ABC Pte Ltd/Q - Quotations/Q - VAS-Quote-QT190039.pdf" _
, Quality:=xlQualityMinimum, IncludeDocProperties:=True, IgnorePrintAreas _
:=False, OpenAfterPublish:=False
我尝试使用PathSeparator,并再次使用了最后的“ 9”,但没有“ 9”时却给出了错误。
答案 0 :(得分:1)
以下是有关操作方法的指南:https://www.rondebruin.nl/mac/mac034.htm
重要的是,您不能将文件保存到您选择的位置。
必须将其保存到当前用户主目录下的文件夹Library/Group Containers/UBF8T346G9.Office
中,因此在大多数情况下为/Users/[current user]/Library/Group Containers/UBF8T346G9.Office
。如果文件夹不存在,则必须创建它。 (请参见上面链接页面上的代码示例)
对罗恩表示敬意!
请对此由MS修复的问题进行投票:https://excel.uservoice.com/forums/304933-excel-for-mac/suggestions/36531559-fix-exportasfixedformat-method