【问题标题】:"Run-time error 1004" with VBA code initiated PDF export使用 VBA 代码启动 PDF 导出的“运行时错误 1004”
【发布时间】:2019-06-06 19:00:48
【问题描述】:

我正在尝试将工作表导出为 PDF,但是当我运行代码时,我不断收到 1004 错误。

我相信它链接到保存目的地的文件夹路径。我尝试以不同的方式定义文件路径,但仍然出现错误。

此代码应该从单元格 B1 中提取文件名的一部分,并从工作表的位置提取文件路径。 PDF 应该保存到工作表的位置。我对VBA相当陌生。任何帮助表示赞赏!

这里是代码

Sub ExportAsPDFTest()

Dim Name As String
Dim Preface As String


Name = Cells(1, "B").Value
Preface = "PreR Summer 2019 - "

ActiveSheet.ExportAsFixedFormat _
    Type:=xlTypePDF, _
    FileName:=ActiveWorkbook.Path & Preface & Name & ".pdf", _
    Quality:=xlQualityStandard, _
    IncludeDocProperties:=False, _
    IgnorePrintAreas:=False, _
    From:=1, _
    To:=1, _
    OpenAfterPublish:=False

End Sub

【问题讨论】:

  • 你现在应该可以看到了。
  • PathPreface 之间需要一个反斜杠。

标签: excel vba


【解决方案1】:

ActiveWorkbook.Path 后面缺少反斜杠 \(或 /,如果您使用的是 Mac)。您可以使用Application.PathSeparator,这样它就可以在两者上工作:

Sub ExportAsPDFTest()
    Dim Name As String
    Dim Preface As String

    Name = Cells(1, "B").Value
    Preface = "PreR Summer 2019 - "

    ActiveSheet.ExportAsFixedFormat _
        Type:=xlTypePDF, _
        Filename:=ActiveWorkbook.Path & Application.PathSeparator & Preface & Name & ".pdf", _
        Quality:=xlQualityStandard, _
        IncludeDocProperties:=False, _
        IgnorePrintAreas:=False, _
        From:=1, _
        To:=1, _
        OpenAfterPublish:=False
End Sub

希望这会有所帮助。

【讨论】:

  • 我试过这段代码,但它仍然给我错误“打印时出错。运行时错误 1004。应用程序定义或对象定义的错误。”我正在使用Mac。也许这与它有关。
  • 不,它没有。我试过 MsgBox ActiveWorkbook.Path & Application.PathSeparator & Preface & Name & ".pdf" 并得到 /Users/elijah/Desktop/PreR Summer 2019 - name.pdf
  • 没错。这意味着它必须是出于其他一些原因。我现在在我的 Windows Excel 上执行了代码并且它可以工作,所以它一定与 Mac 相关......
  • 可能和this issue类似吗?
  • 非常感谢您的帮助!
【解决方案2】:

请添加 msgbox Activeworkbook.path 来检查您的保存路径,您需要再添加一个“\”

【讨论】:

  • 澄清一下:Filename:=ActiveWorkbook.Path & "\\" & Preface & Name & ".pdf", _
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-03-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多