zoukankan      html  css  js  c++  java
  • 通过vba实现对word当中个的标签进行批量的替换

    最近在做的项目,要实现自动生成合同,然后想通过vba进行对合同(word版)中的相同的地方进行批量的替换。

    于是就通过标签的形式对word文档当中的字段进行替换操作。代码如下:

    Public Function updatebookmarkloop(app As Object, bookmarkbase As String, nvalue As Variant, bot As Long, top As Long)
        Dim counter As Long
        Dim name As String
        counter = 1
        For counter = bot To top
            name = bookmarkbase & counter 
            updatebookmark app, name, nvalue '这里的bot 和 top是指的整个的word中的标签。从第几个到第几个。然后整个的标签名称是通过标签和后面的循环的数字组成
    '然后通过调用下面的updatebookmark的方法进行对标签进行替换操作。 Next counter
    End Function Public Function updatebookmark(app As Object, bookmarkname As String, newvalue As Variant) If app.ActiveDocument.Bookmarks.Exists(bookmarkname) Then app.ActiveDocument.Bookmarks(bookmarkname).Select app.Selection.TEXT = newvalue If newvalue = "" Then

            'Debug.Print "deleting bookmark"
            'app.ActiveDocument.Bookmarks(bookmarkname).Delete
          'Debug.Print "bookmark deleted"

            End If
            
        Else
         'Debug.Print bookmarkname & " does not exist"
        End If
       
    End Function

    通过一个简单的方法调用即可实现批量的标签被替换的操作,如下:

     TEXT.updatebookmarkloop wdApp, "管理人A名称", managernameA, 1, 14

    对标签为“管理人A名称”的标签进行替换。总共有14个。循环进行替换。

    至此,word当中的批量标签就被替换掉了。

  • 相关阅读:
    难道真的是RedBook错了?
    用一个土办法证明RedBook的错误
    Md5 Loader Demo
    simple shadow mapping
    又遇到让人疑惑的问题
    [洛谷P1037][题解]产生数
    [洛谷P1279][题解]字串距离
    [洛谷P1122][题解]最大子树和
    [洛谷P1144][题解]最短路计数
    Vue 之 Data
  • 原文地址:https://www.cnblogs.com/gxgd/p/9305771.html
Copyright © 2011-2022 走看看