Word VBA查找并继续
这是我的问题, 我正在寻找Word VBA查找并继续,vba,ms-word,find-replace,Vba,Ms Word,Find Replace,这是我的问题, 我正在寻找:“并用VBA键入HTML代码。下面的代码在同一个:“位置继续循环,并且不会转到下一个位置,因为我实际上并没有删除它。有什么建议吗 Dim bFound As Boolean bFound = True Set r = ActiveDocument.Content r.Find.ClearFormatting Do While bFound With r.Find .Text = ":" .Replacement.Text
:“
并用VBA键入HTML代码。下面的代码在同一个:“
位置继续循环,并且不会转到下一个位置,因为我实际上并没有删除它。有什么建议吗
Dim bFound As Boolean
bFound = True
Set r = ActiveDocument.Content
r.Find.ClearFormatting
Do While bFound
With r.Find
.Text = ":"
.Replacement.Text = ":</b>"
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = True
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
bFound = .Execute(Replace:=wdReplaceOne, Forward:=True)
End With
If bFound Then
r.Select
Selection.HomeKey Unit:=wdLine
Selection.TypeText Text:="<b>"
Selection.EndKey Unit:=wdLine
Selection.MoveRight
End If
Loop
Dim bfind为布尔值
bFound=True
Set r=ActiveDocument.Content
r、 查找.ClearFormatting
找到时就做
与r.Find合作
.Text=“:”
.Replacement.Text=“:”
.Forward=True
.Wrap=wdFindContinue
.Format=False
.MatchCase=True
.MatchWholeWord=False
.MatchWildcards=False
.MatchSoundsLike=False
.MatchAllWordForms=False
bfind=.Execute(Replace:=wdReplaceOne,Forward:=True)
以
如果找到了,那么
r、 挑选
Selection.HomeKey单位:=wdLine
Selection.TypeText文本:=“”
Selection.EndKey单位:=wdLine
选择权
如果结束
环
该代码有两个问题,在其他方面相当不错:
wdFindContinue
作为Wrap
属性,这意味着查找将在文档开头重新启动。根据经验,在代码中始终使用wdFindStop
Range.Collapse
来完成。想象一下,当你有一个选择时,按下键盘上的右箭头键:它将光标放在所选内容的正上方Range
变量。在没有此声明的情况下运行的原始代码表明选项Explicit
可能不在代码模块的顶部。如果它在那里就更好了
Sub JumpBeyondFound()
Dim r As Word.Range
Dim bFound As Boolean
bFound = True
Set r = ActiveDocument.content
r.Find.ClearFormatting
Do While bFound
With r.Find
.Text = ":"
.Replacement.Text = ":</b>"
.Forward = True
.wrap = wdFindStop
.Format = False
.MatchCase = True
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
bFound = .Execute(Replace:=wdReplaceOne, Forward:=True)
End With
If bFound Then
r.Select
Selection.HomeKey Unit:=wdLine
Selection.TypeText Text:="<b>"
Selection.EndKey Unit:=wdLine
Selection.MoveRight
r.Collapse wdCollapseEnd
End If
Loop
End Sub
Sub-JumpBeyondFound()
变暗r为单词范围
Dim bfind为布尔值
bFound=True
设置r=ActiveDocument.content
r、 查找.ClearFormatting
找到时就做
与r.Find合作
.Text=“:”
.Replacement.Text=“:”
.Forward=True
.wrap=wdFindStop
.Format=False
.MatchCase=True
.MatchWholeWord=False
.MatchWildcards=False
.MatchSoundsLike=False
.MatchAllWordForms=False
bfind=.Execute(Replace:=wdReplaceOne,Forward:=True)
以
如果找到了,那么
r、 挑选
Selection.HomeKey单位:=wdLine
Selection.TypeText文本:=“”
Selection.EndKey单位:=wdLine
选择权
r、 塌陷
如果结束
环
端接头
为什么不立即全部更换once@feelingunwelcome不,它不是那个的复制品。网站上的某个地方很可能有重复内容,但事实并非如此。@Slai因为OP还想在找到搜索词的行的开头添加内容。经过尝试、测试,效果很好。谢谢你的其他建议。