Foxtable(狐表)用户栏目专家坐堂 → vba查找替换页眉中所有指定字符


  共有3439人关注过本帖树形打印复制链接

主题:vba查找替换页眉中所有指定字符

帅哥哟,离线,有人找我吗?
xluoping
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:367 积分:3737 威望:0 精华:0 注册:2016/4/2 12:11:00
vba查找替换页眉中所有指定字符  发帖心情 Post By:2022/3/15 9:46:00 [只看该作者]

     需要查找所有页面的页眉中的“"[检测项目]"” ,然后替换为 dr("检测项目"),如何写代码?

请求帮助图片点击可在新窗口打开查看

  If app.ActiveWindow.Selection.Find.Execute("[检测项目]")  Then
            app.ActiveWindow.Selection.TypeText(Text:=dr("检测项目"))
        End If

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:109736 积分:558396 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/3/15 9:59:00 [只看该作者]

    app.Selection.Find.Text = "[检测项目]"
    app.Selection.Find.Replacement.ClearFormatting()
    app.Selection.Find.Replacement.Text = dr("检测项目")
    app.Selection.Find.Execute(Replace:=MSWord.WdReplace.wdReplaceAll)

 回到顶部
帅哥哟,离线,有人找我吗?
xluoping
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:367 积分:3737 威望:0 精华:0 注册:2016/4/2 12:11:00
  发帖心情 Post By:2022/3/15 10:36:00 [只看该作者]



老师你提供的代码,正文中的可以替换,但是不能替换 页眉  里的字符

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:109736 积分:558396 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/3/15 10:46:00 [只看该作者]

设置为页眉编辑模式


For Each oSec As object In doc.Sections    '文档的节中循环
            Dim myRange = oSec.Headers(MSWord.WdHeaderFooterIndex.wdHeaderFooterPrimary).Range
    myRange .Selection.Find.Text = "[检测项目]"
    myRange .Selection.Find.Replacement.ClearFormatting()
    myRange .Selection.Find.Replacement.Text = dr("检测项目")
    myRange .Selection.Find.Execute(Replace:=MSWord.WdReplace.wdReplaceAll)
        Next

 回到顶部
帅哥哟,离线,有人找我吗?
xluoping
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:367 积分:3737 威望:0 精华:0 注册:2016/4/2 12:11:00
  发帖心情 Post By:2022/3/15 10:51:00 [只看该作者]

         app.ActiveWindow.ActivePane.View.SeekView = MSWord.WdSeekView.wdSeekCurrentPageHeader
         app.ActiveWindow.Selection.WholeStory
    app.Selection.Find.Text = "[检测项目]"
    app.Selection.Find.Replacement.ClearFormatting()
    app.Selection.Find.Replacement.Text = dr("检测项目")
    app.Selection.Find.Execute(Replace:=MSWord.WdReplace.wdReplaceAll)


这样可以,谢谢啦!

 回到顶部
帅哥哟,离线,有人找我吗?
xluoping
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:367 积分:3737 威望:0 精华:0 注册:2016/4/2 12:11:00
  发帖心情 Post By:2022/3/15 12:32:00 [只看该作者]

For Each oSec As object In doc.Sections    '文档的节中循环


如果有多节,那么第二节开始就不能替换了!

 回到顶部
帅哥哟,离线,有人找我吗?
xluoping
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:367 积分:3737 威望:0 精华:0 注册:2016/4/2 12:11:00
  发帖心情 Post By:2022/3/15 12:33:00 [只看该作者]

还有就是 文本框里的 不能替换,只能替换段落中的


 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:109736 积分:558396 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/3/15 13:35:00 [只看该作者]

以下是引用xluoping在2022/3/15 12:32:00的发言:
For Each oSec As object In doc.Sections    '文档的节中循环


如果有多节,那么第二节开始就不能替换了!

4楼就是按节处理的

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:109736 积分:558396 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/3/15 13:35:00 [只看该作者]

以下是引用xluoping在2022/3/15 12:33:00的发言:
还有就是 文本框里的 不能替换,只能替换段落中的

这个我也不懂了

 回到顶部
帅哥哟,离线,有人找我吗?
xluoping
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:367 积分:3737 威望:0 精华:0 注册:2016/4/2 12:11:00
  发帖心情 Post By:2022/3/15 15:26:00 [只看该作者]

    For Each oSec As object In doc.Sections     '文档的节中循环
        oSec.Range.Select       '加上这个所有节的页眉都能替换
        app.ActiveWindow.ActivePane.View.SeekView = MSWord.WdSeekView.wdSeekCurrentPageHeader
        app.ActiveWindow.Selection.WholeStory
        app.Selection.Find.Execute(FindText:="[表名]", replacewith:=flbm, Replace:=2)
        app.Selection.Find.Execute(FindText:="[编号]", replacewith:=ddb("窗口"), Replace:=2)
        app.Selection.Find.Execute(FindText:="[机构名]", replacewith:=DataTables("机构").GetComboListString("机构名称","_Identify = " & Vars("jigou_id")), Replace:=2)
    Next

 回到顶部