【问题标题】:VBA Save as PDF with Filename as Cell ValueVBA 另存为 PDF 文件名作为单元格值
【发布时间】: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")

标签: vba excel pdf


【解决方案1】:

试试这个:

Dim strFilename     As String
Dim rngRange        As Range

'Considering Sheet1 to be where you need to pick file name
Set rngRange = Worksheets("Sheet1").Range("K17")

'Create File name with dateStamp
strFilename = rngRange.Value & Format(Now(), "yyyymmdd hhmmss")

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\" & strFilename & ".pdf" _
    , Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _
    :=False, OpenAfterPublish:=False

Sheets("Summary").Select

【讨论】:

  • 谢谢,效果很好。像你一样设置范围是解决问题的方法。我感谢大家的帮助和回应。另外,Jeeped,感谢您提到单元格的宽度,因为这也是需要的。
  • 两年后,这个答案帮助我解决了我自己的 VBA 问题 :) 谢谢
  • 三年零两个月后,这个答案帮助我解决了我面临的一个微妙的 VBA 问题,而我在其他任何地方都找不到解决方案。只需很少的修改,瞧!谢谢大家!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-25
  • 1970-01-01
  • 2022-01-14
  • 2017-08-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多