Foxtable(狐表)用户栏目专家坐堂 → 关于word多次替换的问题


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

主题:关于word多次替换的问题

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


加好友 发短信
等级:一尾狐 帖子:411 积分:4944 威望:0 精华:0 注册:2012/11/16 8:21:00
关于word多次替换的问题  发帖心情 Post By:2019/12/11 16:58:00 [只看该作者]

打开一个word文档,替换3次,然后进行页面设置,代码如下:

Dim wj As String=ProjectPath & "\wj.doc"
Dim app As New MSWord.Application
Dim doc = app.Documents.Open(wj)
app.Selection.Find.ClearFormatting
app.Selection.Find.Replacement.ClearFormatting
With app.Selection.Find
    .Text = "^l"
    .Replacement.Text = "^p"
    .Forward = True
    .Wrap = MSWord.WdFindWrap.wdFindContinue
    .Format = False
    .MatchCase = False
    .MatchWholeWord = False
    .MatchByte = True
    .MatchWildcards = False
    .MatchSoundsLike = False
    .MatchAllWordForms = False
End With
app.Selection.Find.Execute(Replace:= MSWord.WdReplace.wdReplaceAll)
app.Selection.Find.ClearFormatting
app.Selection.Find.Replacement.ClearFormatting
With app.Selection.Find
    .Text = " "
    .Replacement.Text = ""
    .Forward = True
    .Wrap = MSWord.WdFindWrap.wdFindContinue
    .Format = False
    .MatchCase = False
    .MatchWholeWord = False
    .MatchByte = True
    .MatchWildcards = False
    .MatchSoundsLike = False
    .MatchAllWordForms = False
End With
app.Selection.Find.Execute(Replace:= MSWord.WdReplace.wdReplaceAll)
app.Selection.Find.ClearFormatting
app.Selection.Find.Replacement.ClearFormatting
With app.Selection.Find
    .Text = "^p^p"
    .Replacement.Text = "^p"
    .Forward = True
    .Wrap = MSWord.WdFindWrap.wdFindContinue
    .Format = False
    .MatchCase = False
    .MatchWholeWord = False
    .MatchByte = True
    .MatchWildcards = False
    .MatchSoundsLike = False
    .MatchAllWordForms = False
End With
app.Selection.Find.Execute(Replace:= MSWord.WdReplace.wdReplaceAll)
Doc.save
app.quit

Dim app3 As New MSWord.Application
Dim doc3 = app3.Documents.Open(wj)
With doc3.PageSetup
    .TopMargin = 50
    .BottomMargin = 50
    .LeftMargin = 50
    .RightMargin = 50
End With
Doc3.save
app3.quit



发生的问题:当只是进行3次替换,删除页面设置代码后,3次替换都可以成功
如果加上页面设置代码后,只有第一次替换成功
请问老师,问题发生在哪里?

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


加好友 发短信
等级:超级版主 帖子:107014 积分:544295 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/12/11 17:00:00 [只看该作者]

同一个文件直接在第一次打开的文档Doc里设置就行了,干嘛重新打开一次文档,多余

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


加好友 发短信
等级:一尾狐 帖子:411 积分:4944 威望:0 精华:0 注册:2012/11/16 8:21:00
  发帖心情 Post By:2019/12/11 17:04:00 [只看该作者]

Dim wj As String=ProjectPath & "\wj.doc"
Dim app As New MSWord.Application
Dim doc = app.Documents.Open(wj)
app.Selection.Find.ClearFormatting
app.Selection.Find.Replacement.ClearFormatting
With app.Selection.Find
    .Text = "^l"
    .Replacement.Text = "^p"
    .Forward = True
    .Wrap = MSWord.WdFindWrap.wdFindContinue
    .Format = False
    .MatchCase = False
    .MatchWholeWord = False
    .MatchByte = True
    .MatchWildcards = False
    .MatchSoundsLike = False
    .MatchAllWordForms = False
End With
app.Selection.Find.Execute(Replace:= MSWord.WdReplace.wdReplaceAll)
app.Selection.Find.ClearFormatting
app.Selection.Find.Replacement.ClearFormatting
With app.Selection.Find
    .Text = " "
    .Replacement.Text = ""
    .Forward = True
    .Wrap = MSWord.WdFindWrap.wdFindContinue
    .Format = False
    .MatchCase = False
    .MatchWholeWord = False
    .MatchByte = True
    .MatchWildcards = False
    .MatchSoundsLike = False
    .MatchAllWordForms = False
End With
app.Selection.Find.Execute(Replace:= MSWord.WdReplace.wdReplaceAll)
app.Selection.Find.ClearFormatting
app.Selection.Find.Replacement.ClearFormatting
With app.Selection.Find
    .Text = "^p^p"
    .Replacement.Text = "^p"
    .Forward = True
    .Wrap = MSWord.WdFindWrap.wdFindContinue
    .Format = False
    .MatchCase = False
    .MatchWholeWord = False
    .MatchByte = True
    .MatchWildcards = False
    .MatchSoundsLike = False
    .MatchAllWordForms = False
End With
app.Selection.Find.Execute(Replace:= MSWord.WdReplace.wdReplaceAll)

With doc.PageSetup
    .TopMargin = 50
    .BottomMargin = 50
    .LeftMargin = 50
    .RightMargin = 50
End With
Doc.save
app.quit

老师,我是在一个里打开着,但还是上面的情况
[此贴子已经被作者于2019/12/11 17:05:05编辑过]

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


加好友 发短信
等级:一尾狐 帖子:411 积分:4944 威望:0 精华:0 注册:2012/11/16 8:21:00
  发帖心情 Post By:2019/12/11 17:05:00 [只看该作者]

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:wj - 副本.zip


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


加好友 发短信
等级:超级版主 帖子:107014 积分:544295 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/12/11 17:13:00 [只看该作者]

我测试没有问题

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


加好友 发短信
等级:一尾狐 帖子:411 积分:4944 威望:0 精华:0 注册:2012/11/16 8:21:00
  发帖心情 Post By:2019/12/11 17:30:00 [只看该作者]

老师,我有一个替换是把两个连续的回车,替换为一个,但是我运行后还会有这种情况,老师您运行后,没有这种情况吗?

图片点击可在新窗口打开查看此主题相关图片如下:微信截图_20191211172831.png
图片点击可在新窗口打开查看


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


加好友 发短信
等级:超级版主 帖子:107014 积分:544295 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/12/11 17:41:00 [只看该作者]

文档有很多是有连续3个连续的回车的呀,替换后肯定还剩下2个呀,再替换一次呗

 回到顶部