繁体   English   中英

使用VBA代码将Excel工作表导出为单个pdf

[英]Export Excel worksheets to individual pdfs using VBA code

我有一个脚本,我想在MS Access中运行,以将后期绑定的选定工作簿中的所有工作表导出到特定位置中的单个PDf,其中PDF文件名是工作表的名称。 以下是到目前为止的内容,但是我很难弄清楚什么是导出代码。 我曾尝试修改Excel VBA代码( Excel VBA将选定的图纸导出为PDF )以导出,但是它始终在每一步都返回编译错误。

Dim xls  As Object
Dim wkb  As Object
Dim wks1 As Object
Dim wks2 As Object
Dim wks3 As object
Set xls = CreateObject("Excel.Application")
Set wkb = xls.Workbooks.Open("\\EXCHSVR1\stone\Mold_Books\" & mold_id & "\" & Mid(Mid(strFlpath, InStrRev(strFlpath, "/") + 1), InStrRev(strFlpath, "\") + 1))
Set wks1 = wkb.Worksheets(1)
 'code to export the first worksheet to "C:\test\" & wks1.name
Set wks2 = wkb.Worksheets(2)
 'code to export the second worksheet to "C:\test\" & wks2.name
Set wks3 = wkb.Worksheets(3)
 'code to export the third worksheet to "C:\test\" & wks3.name

根据您的评论,这是您面临的编译错误的一个示例:

在此处输入图片说明

发生这种情况是因为xlTypePDF是一个Excel常量,除非您设置了对Microsoft Excel对象库的引用,否则Access不知道该常量。

由于您要使用后期绑定,因此您可能不想将该引用添加到您的VBA项目中。 在这种情况下,您可以做两件事。

  1. 在访问代码中声明常量: Const xlTypePDF As Long = 0然后,您可以继续在代码中的其他位置使用该常量的名称,而不会触发编译错误。
  2. 或者在访问代码中使用常量的值(0)代替其名称。

而且,您将必须以相同的方式处理其他Excel常量,例如xlQualityStandard

您正在查看的帖子正在使用活动工作表。 您正在创建工作表对象。 在每个工作表对象上使用ExportAsFixedFormat

wks1.ExportAsFixedFormat _
    Type:=xlTypePDF, _
    Filename:=myPDFFilePathAndName, _
    Quality:=xlQualityStandard, _
    IncludeDocProperties:=True, _
    IgnorePrintAreas:=False, _
    OpenAfterPublish:=False

wks2.ExportAsFixedFormat _
    Type:=xlTypePDF, _
    Filename:=myPDFFilePathAndName, _
    Quality:=xlQualityStandard, _
    IncludeDocProperties:=True, _
    IgnorePrintAreas:=False, _
    OpenAfterPublish:=False

wks3.ExportAsFixedFormat _
    Type:=xlTypePDF, _
    Filename:=myPDFFilePathAndName, _
    Quality:=xlQualityStandard, _
    IncludeDocProperties:=True, _
    IgnorePrintAreas:=False, _
    OpenAfterPublish:=False

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM