我已经尝试在这里找到这个并且看不到答案所以我想问道,如果这是重复的道歉。
我正在使用邮件合并来填写Word 2010中的表。这会创建同一个表的数百个页面,但每个页面都有不同的数据。然后,我使用宏将word文档拆分为每页单独的文档。我对Macros的了解是非常有限,但我已经有了它的工作,如果我只想要一个标准编号的东西,我知道如何修改名称,但我想要的是它使用一个该表的字段作为名称,因此它们都将其标识号作为其文件名。
这是我为宏所获得的代码:
Sub BreakOnPage()
' Used to set criteria for moving through the document by page.
Application.Browser.Target = wdBrowsePage
For i = 1 To ActiveDocument.BuiltInDocumentProperties("Number of Pages")
'Select and copy the text to the clipboard.
ActiveDocument.Bookmarks("\page").Range.Copy
' Open new document to paste the content of the clipboard into.
Documents.Add
Selection.Paste
' Removes the break that is copied at the end of the page, if any.
Selection.TypeBackspace
ChangeFileOpenDirectory "F:\MyWork"
DocNum = DocNum + 1
ActiveDocument.SaveAs FileName:="test_" & DocNum & ".doc"
ActiveDocument.Close
' Move the selection to the next page in the document.
Application.Browser.Next
Next i
ActiveDocument.Close savechanges:=wdDoNotSaveChanges
End Sub
但我不知道如何让它在文档中选择字段。非常感谢任何帮助!
此外,当它将它拆分为单个文档时,它似乎在它的底部添加了一个空白页面,所以当我打开其中一个文件时,我有我的表,但后面有一个空白页面,我不能弄清楚如何摆脱这一点,所以提示也将是一个巨大的帮助。
答案 0 :(得分:0)
您没有指定所需的单元格,但这应该让您入门:
Dim sCellText As String
sCellText = ActiveDocument.Tables(1).Rows(1).Cells(1).Range
sCellText = Left$(sCellText, Len(sCellText) - 2)
ActiveDocument.SaveAs FileName:="sCellText & ".doc"
这会将文档保存为第一行中第一个单元格的值