我希望在 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,并仅导出打印区域。