0

我做了一个邮件合并来创建包含客户信息的动态单词页面。

然后我做了(通过在网上查看)一个宏将结果文件分成几页,每页保存为一个文件。

现在,我希望为这些文件提供一些包含客户信息的名称。我用谷歌搜索,我认为(唯一?)方法是在页面的最开始创建一个包含该信息的合并字段,然后使用宏从页面中提取并删除它以将其放入文件名中。

示例:如果我有一个名为 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
4

1 回答 1

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

我希望这有帮助。

于 2012-02-15T15:52:40.610 回答