如何提取/删除每个页面的第一个单词?

时间:2012-02-15 14:01:22

标签: vba ms-word extract word-2007

我做了一个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

1 个答案:

答案 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

我希望这会有所帮助。