【发布时间】:2014-12-08 15:03:29
【问题描述】:
我正在尝试将四张纸保存到一个 PDF 中。下面的代码是我到目前为止所拥有的。当我在文件名中使用 ActiveSheet.Name 命令时,它可以工作,但是当我将其更改为动态单元格的范围时,它不再工作并且出错。任何帮助将不胜感激。
Sheets(Array("Dashboard Pg 1", "Dashboard Pg 2", "Dashboard Pg 3", _
"Dashboard Pg 4")).Select
Sheets("Dashboard Pg 1").Activate
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
"C:\Users\Allen\Desktop\Projects\" & ActiveSheet.Range("K17").Value & ".pdf" _
, Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _
:=False, OpenAfterPublish:=False
Sheets("Summary").Select
【问题讨论】:
-
K17的评价值是多少?该值是否可能包含不是文件名合法字符的字符?
-
在文件名末尾添加“.pdf” (
Filename:="C:\Users\Allen\Desktop\Projects\" & ActiveSheet.Range("K17").Value & ".pdf")? -
不添加 .pdf 也没有帮助。它仍然要求我在运行时进行调试
-
我怀疑你在 K17 中使用了某种形式的日期,然后使用了一些单元格格式化魔法来获得你想要的文件名。如果您使用
.Value,则日期将表示为带有正斜杠的短日期,不能在文件名中使用。使用ActiveSheet.Range("K17").Text从单元格中获取格式化的值。确保确保单元格足够宽以显示完整的格式化文本,否则您最终会以###### 作为 PDF 文件名。 -
如果“K17”确实是一个日期,试试这样的:
Format(ActiveSheet.Range("K17"),"YYYY-MM-DD")