【发布时间】:2020-10-30 14:44:22
【问题描述】:
我需要一些关于下面代码的帮助,我在教程中得到了这个代码,它对我来说工作正常,这个问题的重点是,下面的代码只使用单元格从一个恒定的 PDF 表单生成 1 个 PDF “A2”和“B2”。我怎样才能制作一个循环,所以代码会根据工作表中的每一行和文本生成 1 个 PDF 文件?
我提供下面的代码。我将非常感谢您的帮助和时间。
Option Explicit
Sub Write_to_pdf_form()
'declaring variables
Dim pdfApp As Acrobat.AcroApp
Dim pdfDoc As Acrobat.AcroAVDoc
Dim Support_doc As Acrobat.AcroPDDoc
Dim pdffile
Dim wsDocs As Worksheet
Dim outputname
'declaring output path
pdffile = "C:\Users\User\Documents\testesbulkpdf\Forms.pdf"
Dim pdf_form As AFORMAUTLib.AFormApp
'declaring fields
Dim num_doc As AFORMAUTLib.Field
Dim desc_doc As AFORMAUTLib.Field
Set pdfApp = CreateObject("AcroExch.App")
Set pdfDoc = CreateObject("AcroExch.AVDoc")
If pdfDoc.Open(pdffile, "") = True Then
pdfDoc.BringToFront
pdfApp.Show
'setting fields names
Set pdf_form = CreateObject("AFORMAUT.App")
Set num_doc = pdf_form.Fields("N")
Set desc_doc = pdf_form.Fields("descrição documento")
'setting fields values
num_doc.Value = Worksheets("docs").Range("A2").Value
desc_doc.Value = Worksheets("docs").Range("B2").Value
'setting output name of PDF
outputname = "Doc." & num_doc.Value & "-" & desc_doc.Value
Set Support_doc = pdfDoc.GetPDDoc
If Support_doc.Save(PDSaveFull, "C:\Users\User\Documents\testesbulkpdf\" & outputname & ".pdf") Then
Debug.Print "Saved"
Else
Debug.Print "Failed to save the doc"
End If
pdfDoc.Close True
Support_doc.Close
pdfApp.Exit
Set num_doc = Nothing
Set desc_doc = Nothing
Set pdfDoc = Nothing
Set Support_doc = Nothing
Set pdfApp = Nothing
End If
End Sub
【问题讨论】:
-
欢迎来到 Stack Overflow!如果您从 VBA 开始,我建议您查看this tutorial about loops in VBA 或任何关于该主题的可用内容。这样你就可以自己学习如何做到这一点。在您自行尝试之后,如果您仍然遇到困难,请随时返回 Stack Overflow 编辑此问题或创建一个新问题,详细说明您的进度和您面临的具体问题。
-
感谢DecimalTurn先生的帮助,我不会说我
m a novice at VBA, but im defintily not an expert. Ill看教程,谢谢帮助。
标签: excel vba pdf automation