Excel VBA for Mac:将工作表另存为PDF

时间:2015-06-04 09:00:55

标签: excel vba pdf excel-vba-mac

我实际上正在使用一个简单的宏来将活动工作表保存为具有特殊名称的PDF文件。 我创建的宏正在工作,但它将每个工作表保存在多个PDF中,并将工作表的名称放在文件名的末尾。

如果你能帮助我,那就太棒了,我看不出有什么问题......

这是我的宏:

Sub PrintPDF() 
    Dim wksSheet As Worksheet 
    Dim strFile As String 

    Set wksSheet = ActiveSheet 
    'strFile = Format(Now(), "yyyymm") _ 
                & ".pdf" 

    strFile = "blabla" _ 
                & "_" _ 
                & Format(Now(), "yyyymm") _ 
                & "_" _ 
                & "name2" _ 
                & " " _ 
                & Replace(Replace(wksSheet.Cells(1, 2).Value, " ", ""), ".", "_") _ 
                & ".pdf" 

    strFile = ThisWorkbook.Path & ":" & strFile 

    wksSheet.SaveAs Filename:=strFile, FileFormat:=xlPDF 
End Sub 

2 个答案:

答案 0 :(得分:0)

您在Excel Mac 2011 VBA中发现了一个错误!

尽管使用了ActiveSheet.SaveAs或我首选的语法: -

ActiveWorkbook.SaveAs Filename:=strFile, FileFormat:=xlPDF, PublishOption:=xlSheet

Excel Mac 2011 VBA将始终保存所有工作表。

如果打开宏记录器并将工作表保存为PDF,它将按预期工作,并将ActiveWorkbook版本写入代码模块。现在立即重新运行它生成的代码并产生不同的结果!

我可以确认Excel Mac 2016中不存在此错误,并且不再支持工作表语法。您需要更改为上面包含的工作簿语法。

答案 1 :(得分:0)

以下方法解决了问题

i[3-6]86-linux-gnu