Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将数据从excel复制到pdf表单,第一种方法有效,但_Excel_Vba_Pdf_Acrobat - Fatal编程技术网

将数据从excel复制到pdf表单,第一种方法有效,但

将数据从excel复制到pdf表单,第一种方法有效,但,excel,vba,pdf,acrobat,Excel,Vba,Pdf,Acrobat,我想使用vba将数据从Excel导出到pdf表单。 我采用了这种方法: 当我只复制一个字段时,它可以工作,但我想复制A1:K2中的所有字段,其中字段标题始终位于顶部,内容位于下面的行中。 我想我的问题是,当我试图复制下一个值和字段标题时,我没有切换回Excel。但我不知道如何正确地做。 所以如果有人能告诉我,我会非常高兴 文件可在此处下载: Sub-Pdfdings() Dim gApp扮演Acrobat.CAcroApp 作为Acrobat.CAcroAVDoc的Dim avdoc 将gP

我想使用vba将数据从Excel导出到pdf表单。 我采用了这种方法:

当我只复制一个字段时,它可以工作,但我想复制A1:K2中的所有字段,其中字段标题始终位于顶部,内容位于下面的行中。 我想我的问题是,当我试图复制下一个值和字段标题时,我没有切换回Excel。但我不知道如何正确地做。 所以如果有人能告诉我,我会非常高兴

文件可在此处下载:

Sub-Pdfdings()
Dim gApp扮演Acrobat.CAcroApp
作为Acrobat.CAcroAVDoc的Dim avdoc
将gPDDoc设置为Acrobat.CAcroPDDoc
Const DOC\u文件夹为String=“C:\Users\Frank\Documents”
将x作为布尔值
设置gApp=CreateObject(“AcroExch.App”)
设置gPDDoc=CreateObject(“AcroExch.PDDoc”)
设置avdoc=CreateObject(“AcroExch.avdoc”)
“隐藏杂技演员-到目前为止还不错
“盖普
Dim FormApp作为AFORMAUTLib.AFormApp
将AcroForm设置为格式库字段
将字段设置为aformoutlib.Field
Dim z,i,j,n为整数
将wksTab1设置为工作表
暗费尔德,以弦乐的形式演奏
设置wksTab1=工作表(“表2”)
'打开我选择的PDF。Acrobat仍然没有在我的屏幕上闪烁
j=1
i=2
当我<3
x=avdoc.Open(DOC\u文件夹和“\formular\u ve01a.pdf”、“temp”)
“Acrobat现在出现在我的屏幕上。但是,如果没有这一行,我会得到一个错误。Show的工作原理与它看起来的一样。
avdoc.max(1)
'打开后立即再次隐藏它。这会产生闪光
“盖普
Set FormApp=CreateObject(“aformout.App”)
而j<39
'如果最大化行不在那里,这就是我收到有关document viewer的错误信息的地方
Feld=wksTab1.单元(1,j).值
Inhalt=wksTab1.单元格(i,j).值
对于FormApp.字段中的每个字段
如果Field.Name=Feld,则
Field.Value=Inhalt
如果结束
下一个
j=j+1
温德
Dim sDoc
设置sDoc=avdoc.GetPDDoc
saveOk=sDoc.Save(1,DOC\u文件夹和“\OK\u公式”和wksTab1.Cells(1,1.Value和“.pdf”)
avdoc.Close(1)
新闻出版总署,退出
i=i+1
温德
端接头
  • 将A1:K2设置为打印范围
  • 将打印机设置为PDF书写器(CutePDF或PDF995或其他)
  • 印刷品

  • 我通过另一个论坛得到的解决方案

          <pre>While j < 39
             'If the Maximize line is not there, this is where I receive error about document viewer
             Feld = wksTab1.Cells(1, j).Value
             Inhalt = wksTab1.Cells(i, j).Value
             FormApp.Fields(Feld).Value = Inhalt
             j = j + 1
          Wend
    
    而j<39
    '如果最大化行不在那里,这就是我收到有关document viewer的错误信息的地方
    Feld=wksTab1.单元(1,j).值
    Inhalt=wksTab1.单元格(i,j).值
    FormApp.Fields(Feld.Value=Inhalt
    j=j+1
    温德
    


    谢谢大家

    嗯,它可能适用于CutePdf(但这将花费30美元),但PDF995似乎无法填充pdf表单。我想填写一个现有的表单,这种方式适用于第一个字段,但无法获得第二个字段。可能是因为焦点问题(抱歉,我错过了你说你要填写pdf表格的那部分。
          <pre>While j < 39
             'If the Maximize line is not there, this is where I receive error about document viewer
             Feld = wksTab1.Cells(1, j).Value
             Inhalt = wksTab1.Cells(i, j).Value
             FormApp.Fields(Feld).Value = Inhalt
             j = j + 1
          Wend