我正在使用宏将活动工作表另存为具有特殊名称的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条答案
按热度按时间llew8vvj1#
您在Excel Mac 2011 VBA中发现了一个错误!
尽管使用您的语法
ActiveSheet.SaveAs
或我的首选:-Excel Mac 2011 VBA将始终保存所有工作表。
如果您打开宏录制器并将工作表保存为PDF,它会按预期工作并将
ActiveWorkbook
版本写出到代码模块。现在立即重新运行它生成的代码,它会产生不同的结果!我可以确认Excel Mac 2016中不存在此错误,并且不再支持工作表语法。您需要更改为我在上面包含的工作簿语法。
guykilcj2#
以下方法解决了该问题