Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba 根据文档中其他字段的内容更新MS Word字段_Vba_If Statement_Ms Word - Fatal编程技术网

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

Vba 根据文档中其他字段的内容更新MS Word字段,vba,if-statement,ms-word,Vba,If Statement,Ms Word,我试图找到一种方法,根据同一文档中的某些内容查找和替换MS Word文档中的内容。我有系统生成的Word文档,每个文档的长度为一页,但页数可以从一页到100页(或更多)。每个文档的格式都完全相同。文件每一页都有一个短语(例如“费用类型”在每一页上可能不同,也可能不同。我需要能够根据该页上反映的费用类型在每一页上插入实际费用金额 我一直在尝试使用书签方法,而我对在MS Word中使用VBA是相当陌生的。我采用的方法是设置用于搜索短语的书签范围,然后设置一个书签,指示插入值的位置。到目前为止,我已经

我试图找到一种方法,根据同一文档中的某些内容查找和替换MS Word文档中的内容。我有系统生成的Word文档,每个文档的长度为一页,但页数可以从一页到100页(或更多)。每个文档的格式都完全相同。文件每一页都有一个短语(例如“费用类型”在每一页上可能不同,也可能不同。我需要能够根据该页上反映的费用类型在每一页上插入实际费用金额

我一直在尝试使用书签方法,而我对在MS Word中使用VBA是相当陌生的。我采用的方法是设置用于搜索短语的书签范围,然后设置一个书签,指示插入值的位置。到目前为止,我已经掌握了以下内容:

子bmAmtDue() ' “bmAmtDue ' ' 变暗rng As范围 Dim iBookmarkSuffix作为整数 暗淡的strbookmark前缀

 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
 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
 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
端接头

子bmStartPermitType() ' 'bmStartPermitType ' ' 变暗rng2 As范围 Dim iBookmarkSuffix作为整数 暗淡的strbookmark前缀

 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
 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
 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
端接头

子bmEndPermitType() ' 'bmEndPermitType ' ' 变暗rng2 As范围 Dim iBookmarkSuffix作为整数 暗淡的strbookmark前缀

 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
 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
 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
端接头

我非常感谢您的帮助,如果有一个简单的方法,我不介意采取不同的方法。我一直在使用MS Word文档。我们每个月都手动执行此操作,有时需要100个文档


谢谢

书签是可以的,但可能是“太灵活”了。它们甚至可以从表格单元格的中间开始,在另一段中间结束。我建议你尝试用内容控件来做它的外观也可能更适合你的场景。请检查这个。


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

感谢您的输入。我对编写.NET一无所知。我想我将放弃书签方法。我将尝试使用VBA搜索关键字,将关键字旁边的内容存储为v变量,并使用vlookup函数从Excel中检索值并将其写入Word文档。如果我让它工作,我将发布我的代码,供可能需要它的任何人使用。