VBA代码打印到Excel中的PDF版Mac



我希望在 Excel for Mac 中自动打印到 PDF。我尝试使用宏录制器,但由于某种原因,它没有将保存为 PDF 代码。我相信我对以下代码的问题在于文件名:= 件或质量:= 件。名称约定可能已关闭,因为我通常不会在 Mac 上执行此操作,但现在没有 PC。建议将不胜感激!

请参阅下面的代码:

Sheets("Output").Select
Range("A1:P57").Select
ActiveSheet.PageSetup.PrintArea = "$A$1:$P$57"
With ActiveSheet.PageSetup
    .Orientation = xlLandscape
    .FitToPagesWide = 1
    .FitToPagesTall = 1
End With
ActiveWindow.SelectedSheets.ExportAsFixedFormat Type:=xlTypePDF, _
Filename:="Users/MyName/Desktop/Cash Flow 1.pdf" _
Quality:=xlQualityMedium, IncludeDocProperties:=False, _
IgnorePrintAreas:=False, OpenAfterPublish:=True

您的解决方案可以在这里找到。问题是Mac的沙盒要求。

这是我正在使用的示例代码。朗德布鲁因致谢

Sub ExportasPdf(Druckbereich As Range, Dokumentname As String)
' See https://www.rondebruin.nl/mac/mac034.htm
OfficeFolder = MacScript("return POSIX path of (path to desktop folder) as string")
OfficeFolder = Replace(OfficeFolder, "/Desktop", "") & "Library/Group Containers/UBF8T346G9.Office/" & "MyFolder/"
str_Filename = OfficeFolder & Dokumentname & ".pdf"
'MsgBox (str_filename)
Druckbereich.ExportAsFixedFormat Type:=xlTypePDF, FileName:=str_Filename _
    , Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False _
    , OpenAfterPublish:=False
End Sub

彼得

我正在努力解决同样的问题并找到了您的帖子。 我拿走了你的代码并将其剥离到

 ActiveWindow.SelectedSheets.ExportAsFixedFormat Type:=xlTypePDF

这产生了一个错误,指示 SelectedSheets 不支持 ExportAsFixedFormat。

然后我把行修改为

 ix = 1
 For Each sh In ActiveWindow.SelectedSheets
     sh.ExportAsFixedFormat Type:=xlTypePDF, _ 
      fileName:=ThisWorkbook.path & "boo-" & ix & ".pdf", IgnorePrintAreas:=False
     ix = ix+1
  Next sh

这将生成 2 个 pdf 文件,但两张纸都是完整打印的,而不仅仅是打印打印区域。 现在我很讨厌,因为 Mac 上的 VBA 被证明是迟钝的(或者证明我是,很难说是哪个(。

更新。事实证明,我就是那个昏暗的那个。 我没有检查工作表以确保它们的打印区域已设置。 上面的代码为每个选定的工作表生成一个pdf,并仅导出打印区域。

最新更新