Excel 在vba中合并pdf文件

Excel 在vba中合并pdf文件,excel,vba,merge-file,Excel,Vba,Merge File,我有一个子例程将“análise CC”excel表打印到pdf中,该表保存在一个文件夹中,文件名根据我要执行的打印而变化。到目前为止还不错 然后,我正在开发另一个子例程,用同一文件夹中的另一个pdf文件编译以前的pdf文件。我无法使MergePDF功能正常工作。我做错了什么?代码如下。谢谢 Sub ExportAsPDF() Dim FolderPath As String FolderPath = "C:\Users\DMM\Certificados" '

我有一个子例程将“análise CC”excel表打印到pdf中,该表保存在一个文件夹中,文件名根据我要执行的打印而变化。到目前为止还不错

然后,我正在开发另一个子例程,用同一文件夹中的另一个pdf文件编译以前的pdf文件。我无法使MergePDF功能正常工作。我做错了什么?代码如下。谢谢

Sub ExportAsPDF()
    Dim FolderPath As String     
    FolderPath = "C:\Users\DMM\Certificados"

    'Sheets(Array("Análise CC", "QR Code")).Select
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=FolderPath & "\" & Sheets("Análise CC").Range("O4"), _
      openafterpublish:=False, ignoreprintareas:=False

    MsgBox "All PDF's have been successfully exported." 
End Sub


Sub Combine_PDFs()
    Dim strPDFs(0 To 1) As String
    Dim bSuccess As Boolean
    Dim FolderPath As String

    FolderPath = "C:\Users\ITG-0720\OneDrive - INSTITUTO TECNOLOGICO DO GAS\ITG\DMM\Certificados"

    strPDFs(0) = FolderPath & "\" & Sheets("Análise CC").Range("D9")
    strPDFs(1) = FolderPath & "\" & Sheets("Análise CC").Range("O4")

    bSuccess = MergePDFs(strPDFs, "FolderPath & "\" & Sheets("Análise CC").Range("O4")")

    If bSuccess = False Then MsgBox "Failed to combine all PDFs", vbCritical, "Failed to Merge PDFs"
End Sub

什么是合并PDF请注意,您的字符串是错误的,应该是
bSuccess=MergePDFs(strPDFs、FolderPath和“\”Sheets(“Análise CC”).Range(“O4”)
,不带额外引号
在开头和结尾。这一行中应该有一个编译错误如果你问问题,请告诉我你犯了哪些错误,在哪里。嗨,谢谢你的评论和更正。MergePDF是编译2个或更多pdf文件的函数。第一个参数是一个字符串,它组合了要编译的pdf文件。在我的例子中,要编译的两个文件名都随“Análise CC”表中的单元格D9和O4而变化。此函数的第二个参数也是一个字符串,其名称也是cell O4(此编译文件应替换前一个文件),表示编译后的pdf应保存到的位置。我得到的错误是mergePDF函数的“Sub或function not defined”…提前感谢如果您得到
mergePDF
函数的“Sub或function not defined”,那么它要么没有定义,要么没有合适的范围来调用它。关于这一点,错误信息相当清楚。是否在另一个模块中声明为
Private
?将此函数
mergePDF
放入一个模块中,并将其声明为
Public
。再次感谢。是的,实际上,函数在另一个模块中声明为私有。现在例程正在运行,但给我的消息是“未能合并所有PDF”。由于我已经安装了Adobe Pro DC,并且“Adobe Acrobat 10.0类型库”已在VBA的引用(Adobe.tlb)中进行了检查,因此我建议更改为Adobe.dll,但VBA不允许(消息“无法添加对指定文件的引用”)。。。再次感谢您的建议什么是
合并PDF
?•请注意,您的字符串是错误的,应该是
bSuccess=MergePDFs(strPDFs、FolderPath和“\”Sheets(“Análise CC”).Range(“O4”)
,不带额外引号
在开头和结尾。这一行中应该有一个编译错误如果你问问题,请告诉我你犯了哪些错误,在哪里。嗨,谢谢你的评论和更正。MergePDF是编译2个或更多pdf文件的函数。第一个参数是一个字符串,它组合了要编译的pdf文件。在我的例子中,要编译的两个文件名都随“Análise CC”表中的单元格D9和O4而变化。此函数的第二个参数也是一个字符串,其名称也是cell O4(此编译文件应替换前一个文件),表示编译后的pdf应保存到的位置。我得到的错误是mergePDF函数的“Sub或function not defined”…提前感谢如果您得到
mergePDF
函数的“Sub或function not defined”,那么它要么没有定义,要么没有合适的范围来调用它。关于这一点,错误信息相当清楚。是否在另一个模块中声明为
Private
?将此函数
mergePDF
放入一个模块中,并将其声明为
Public
。再次感谢。是的,实际上,函数在另一个模块中声明为私有。现在例程正在运行,但给我的消息是“未能合并所有PDF”。由于我已经安装了Adobe Pro DC,并且“Adobe Acrobat 10.0类型库”已在VBA的引用(Adobe.tlb)中进行了检查,因此我建议更改为Adobe.dll,但VBA不允许(消息“无法添加对指定文件的引用”)。。。再次感谢你的建议