我做了一个mailmerge来创建包含客户信息的动态字页。
然后我(通过在网上查看)一个宏将结果文件分成几个页面,每个页面保存为一个文件。
现在,我希望为这些文件提供一些包含客户信息的名称。我用Google搜索,我认为(只有?)的方法是在页面的最开始创建一个包含该信息的合并域,然后使用宏从页面中提取并删除它,将其放入文件名中。
示例:如果我有一个名为Stackoverflow的客户,我希望有一个名为Facture_Stackoverflow.doc的文件。
我找不到如何从我的页面中选择,提取然后删除第一个单词。
这是我的“拆分宏”,它目前只使用递增的ID命名文件:
Sub DecouperDocument()
Application.Browser.Target = wdBrowsePage
For i = 1 To ActiveDocument.BuiltInDocumentProperties("Number of Pages")
ActiveDocument.Bookmarks("\page").Range.Copy
Documents.Add
Selection.Paste
Selection.TypeBackspace
ChangeFileOpenDirectory "C:\test\"
DocNum = DocNum + 1
ActiveDocument.SaveAs FileName:="Facture_" & DocNum & ".doc"
ActiveDocument.Close
Application.Browser.Next
Next i
ActiveDocument.Close savechanges:=wdDoNotSaveChanges
End Sub
答案 0 :(得分:0)
以下功能可让您提取Word文档的第一个单词(并可选择删除它)。
Public Function GetFirstWord(Optional blnRemove As Boolean = True) As String
Dim rng As Range
Dim intCharCount As Integer
Dim strWord As String
With ThisDocument
Set rng = .Characters(1)
intCharCount = rng.EndOf(wdWord, wdMove)
With .Range(0, intCharCount - 1)
strWord = .Text
If blnRemove Then
.Delete
End If
End With
End With
GetFirstWord = strWord
End Function
我希望这会有所帮助。