我想将多页MS Publisher 2010文档拆分为一组单独的文档,每页一个。
起始文档来自邮件合并,我正在尝试生成一组编号和命名的票证作为PDF格式发送给人们进行事件(这是针对慈善机构)。邮件合并似乎工作正常,我可以保存合并的文档,它看起来没问题,例如一份50人的名单,给我一份50页的文件。
理想情况下,结果将是一组PDF。
我尝试创建一些简单的VBA代码来执行此操作,但它不能始终如一地工作。如果我在下面尝试这个非常简单的宏,我会得到正确数量的文档,但是每5个文档中只有1或2个文档具有正确的内容。大多数文件都是空的。
Sub splitter()
Dim i As Integer
Dim Source As Document
Dim Target As Document
Set Source = ActiveDocument
For i = 1 To Source.Pages.Count
Set Target = Documents.Add
Source.Pages(i).Shapes.Range.Copy
Target.Pages(1).Shapes.Paste
Target.SaveAs Filename:="C:\Temp\Ticket_" & i
Target.Close
Set Target = Nothing
Next i
End Sub
我确实有时会收到剪贴板繁忙的错误,但并非总是如此。
另一种方法可能是从主文档开始,并在单独的文档上循环,并填写每个人的票据的个人详细信息,并直接生成PDF。但这似乎更复杂,我不是VB程序员(但是已经做了C ++等20多年,所以我可以编程:-))
最后一个烦恼是它似乎继续为每个文档打开一个新的Publisher窗口。然后关闭50多个发布者副本需要一段时间,笔记本电脑开始爬行......
请告知如何最好地解决这些问题。我可能错过了一些微不足道的东西,作为一个相对的VB(A)新手。
提前感谢任何建议
答案 0 :(得分:0)
尝试编写类似的代码:
为每个页面循环以下内容
name & "page" & X
使用VBA复制文件很简单,但在Publisher VBA中复制页面非常麻烦,因此应该更容易实现