【发布时间】:2018-05-02 15:48:32
【问题描述】:
我发现此代码效果很好,但我需要将 1 张工作簿另存为 pdf。将文件格式更改为xltypepdf 时,我不断收到错误消息。有人可以帮忙吗?
Sub DateFolderSave()
Application.DisplayAlerts = False
' Check for year folder and create if needed If
Len(Dir("C:\Users\Christine\Desktop\Learner Lists LC\" & Year(Date),
vbDirectory)) = 0 Then
MkDir "C:\Users\Christine\Desktop\Learner Lists LC\" & Year(Date)
End If
' Check for month folder and create if needed If
Len(Dir("C:\Users\Christine\Desktop\Learner Lists LC\" & Year(Date) & "\" &
MonthName(Month(Date), False), vbDirectory)) = 0 Then MkDir
"C:\Users\Christine\Desktop\Learner Lists LC\" & Year(Date) & "\" &
MonthName(Month(Date), False)
End If
' Check for date folder and create if needed If
Len(Dir("C:\Users\Christine\Desktop\Learner Lists LC\" & Year(Date) & "\" &
MonthName(Month(Date), False) & "\" & Format(Date, "dd.mm.yy"),
vbDirectory)) = 0 Then
MkDir "C:\Users\Christine\Desktop\Learner Lists LC\" & Year(Date) & "\" &
MonthName(Month(Date), False) & "\" & Format(Date, "dd.mm.yy")
End If
' Save File
ActiveWorkbook.SaveAs Filename:= _ "C:\Users\Christine\Desktop\Learner Lists
LC\" & Year(Date) & "\" & MonthName(Month(Date), False) & "\" & Format(Date,
"dd.mm.yy") & ".xlsm", _ FileFormat:=xlOpenXMLWorkbookMacroEnabled,
CreateBackup:=False
Application.DisplayAlerts = True
' Popup Message MsgBox "File Saved As:" & vbNewLine &
C:\Users\Desktop\Learner Lists LC\" & Year(Date) & _ "\" &
MonthName(Month(Date), False) & "\" & Format(Date, "mm.dd.yy") & ".xlsm"
End Sub
【问题讨论】:
-
您不必在工作簿上
SaveAs来获取 PDF 文件,您必须在工作表上ExportAsFixedFormat Type:=xlTypePDF才能做到这一点 -
提示:将代码复制到问题中时,只需直接从 VBE 复制/粘贴到问题中即可。这样您就不会出现使代码无法运行的无效换行符。
-
是的,很抱歉。先发到手机上然后塞进去
-
@YowE3K -- 我很好奇为什么有时你会“放弃”一个非常好的几乎答案作为评论而不是答案?很难不猛扑进去,重新输入你说的话并得分! (我想我可能已经不经意地从你那里剪掉了一些观点......)我认为你要么是在提示 OP 填写空白并回答他们自己的问题,要么你害怕达到 20,000 个代表会让你“老”还是什么? :) 在你的答案坐在那里和 54% 的“路径”代码之间(但谁在数呢),这真的很难控制自己。
-
@ashleedawg 通常是因为我在睡觉前看问题,我不想再熬夜查看文档(我自己从未真正使用过
ExportAsFixedFormat,所以在我发布答案之前需要阅读它)但我可以提供一个快速评论,这可能会给 OP 提供足够的线索,让他们自己做。但是,如果您从我这里看到任何此类 cmets,如果您将其充实为完整的答案,我会非常高兴。之后联系我,我会支持你的答案(如果我不完全同意,我会提出修复建议)。