我正在开发一个VBA宏,它循环遍历一个大型电子表格,将每一行导出为XML,将XML文件导入PDF格式(XFA体系结构),然后将每个填充的表单保存到预定义的文件夹中。问题是,经过96次迭代(重复测试)后,每个新完成的PDF都会导致最旧的PDF从文件夹中消失。循环的代码如下:
Sub AcroExport()
Dim OutputPath As String
Dim theForma As New AcroAVDoc
Dim theform As AcroPDDoc
Dim jso As Object
OutputPath = GetMyDocuments()
ActiveWorkbook.XmlMaps("1042-S_Map").Export OutputPath & "f1042sExportTemp.xml", True
If theForma.Open("C:\Users\E050704\Desktop\f1042s.pdf", "") Then
Set theform = theForma.GetPDDoc
Set jso = theform.GetJSObject
jso.importXFAData OutputPath & "f1042sExportTemp.xml"
theform.Save 1, OutputPath & "1042-S_K-1_Output\" & "Form 1042-S - " & Range("ReciptNameCell").Value & ".pdf"
theForma.Close True
End If
End Sub
我也尝试过JavaScript对象中的SaveAs方法,结果略有不同(仍有96个文件,但不是删除最旧的文件,而是创建新文件)。
完全不知道如何让它保留超过96个文件。非常感谢任何帮助。
供参考,我使用的是Windows 7 Enterprise,Excel 2007和Acrobat 9 Standard(版本9.4.6)。