根据文档中其他字段的内容更新MS Word字段

时间:2014-07-25 15:12:42

标签: vba if-statement ms-word

我正在尝试找到一种方法,根据同一文档中的某些内容查找和替换MS Word Doc中的内容。我有系统生成的Word文档,每个文档长度为一页,但页数可以从1到100(或更多)。每个文档的格式完全相同。文档的每个页面都有一个短语(例如"费用类型和#34;可能会也可能不会从一个页面到下一个页面不同。我需要能够在每个页面上插入实际的费用金额关于该给定页面上反映的电荷类型。

我一直在尝试使用书签方法,我在MS Word中使用VBA相当新。我采用的方法是设置用于搜索短语的书签范围,然后设置一个书签,指示插入值的位置。以下是我到目前为止的情况:

Sub bmAmtDue() ' ' bmAmtDue ' '      Dim rng As Range      将iBookmarkSuffix视为整数      昏暗的strBookMarkPrefix

 strBookMarkPrefix = "BM"

 Set rng = ActiveDocument.Range
 With rng.Find
    .Text = "Please see fee chart, with additional requirements, on reverse side"
    Do While .Execute
        rng.Text = "" 'clear the "XXX" (optional)
        iBookmarkSuffix = iBookmarkSuffix + 1
        ActiveDocument.Bookmarks.Add strBookMarkPrefix & iBookmarkSuffix, rng
    Loop
End With

End Sub

Sub bmStartPermitType() ' ' bmStartPermitType ' '      Dim rng2 As Range      将iBookmarkSuffix视为整数      昏暗的strBookMarkPrefix

 strBookMarkPrefix = "BMStartPermitType"

 Set rng = ActiveDocument.Range
 With rng.Find
    .Text = "Type:"
    Do While .Execute
        iBookmarkSuffix = iBookmarkSuffix + 1
        ActiveDocument.Bookmarks.Add strBookMarkPrefix & iBookmarkSuffix, rng
    Loop
End With

End Sub

Sub bmEndPermitType() ' ' bmEndPermitType ' '      Dim rng2 As Range      将iBookmarkSuffix视为整数      昏暗的strBookMarkPrefix

 strBookMarkPrefix = "BMEndPermitType"

 Set rng = ActiveDocument.Range
 With rng.Find
    .Text = "Amount due:"
    Do While .Execute
        iBookmarkSuffix = iBookmarkSuffix + 1
        ActiveDocument.Bookmarks.Add strBookMarkPrefix & iBookmarkSuffix, rng
    Loop
End With

End Sub

我很感激任何帮助,如果有一个简单的方法,我不介意采取不同的方法。我有点不习惯使用MS Word Docs。我们每月手动执行此操作,有时是100个文档。

谢谢

1 个答案:

答案 0 :(得分:0)

书签可以,但可能“过于灵活” - 它们甚至可以从表格单元格的中间开始,然后在另一个段落的中间结束。我建议您尝试使用内容控件 - 它们的外观可能也更适合您的场景。请检查此link

如果您可以编写一个简单的.NET应用程序,那么mail merge toolkit将使您的任务变得更加容易。它将允许您创建将充当模板的word文档(它还使用内容控件进行标记),您可以使用.NET应用程序中的数据填充该文档。它只需要编写几行代码。