0
这可能很简单,但我无法使其工作。Word VBA:如何选择找到的文本而不是光标所在的位置
我需要搜索我的文档,找到包含字符串'alog'的单词并添加'ue'。例如,'目录' - >'目录'。
上面的工作正常,但我不能得到下一个工作:如果发现的字符串已经'后'日志'我不想再添加'ue'。
从宏访问的子程序如下。我已经尝试在'while execute'部分添加以下几行,但'selection'总是变成光标所在的单词。
With Selection
.Expand unit:=wdWord
End With
我怎样我)选择找到的范围的内容和ii)展开新的选择由两个字符来看看这两个字符是“UE”?
非常感谢。
Sub do_replace2(old_text As String, new_text As String, Count_changes As Integer)
' Replaces 'log' with 'logue'
' Ignores paragraphs in styles beginning with 'Question'
Dim rg As Range
Set rg = ActiveDocument.Range
With rg.Find
.Text = old_text
While .Execute
If Left(rg.Paragraphs(1).Style, 8) <> "Question" Then
rg.Text = new_text
With ActiveDocument.Comments.Add(rg, "Changed from '" & old_text & "'")
.Initial = "-logs"
.Author = "-logs"
End With
Count_changes = Count_changes + 1
End If
rg.Collapse wdCollapseEnd
Wend
End With
End Sub
非常感谢共产国际:既然你只使用这一个测试(因为该
.Find
方法可以躲闪),在副本rg
进行测试。那很完美。 – hmm谢谢共融;正如我所说的结束+ 2工作正常,给我一个范围开始(说)735和结束737与其中的字符串。但是,如果我执行.wdcollapsestart和.start + 5,范围的开始和结束是相同的,并且字符串为空。为什么'开始'和'结束'不一样? – hmm
另一个更新:当我这样做: test.Collapse wdCollapseStart test.Start = test.Start - 5 它工作正常。你不能做'开始+ n'吗? – hmm