使用Mac Excel VBA另存为pdf

时间:2018-09-24 05:26:11

标签: excel vba macos excel-vba-mac

在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”时却给出了错误。

1 个答案:

答案 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