我正在尝试查找以相同字符开头和结尾的所有单词,然后更改它们。现在我想让他们都说“foo”。
For Each w In ActiveDocument.Words
Dim startChar As String
startChar = Left(w, 1)
Dim endChar As String
endChar = Right(w, 1)
If UCase(startChar) = UCase(endChar) Then
w = "foo"
End If
Next w
如果我Debug.Print
w
,我会得到正确的结果,但只有在该范围内 - 我如何才能让文档中的单词真正改变?
答案 0 :(得分:0)
w是一个Word范围(理想情况下应该声明为这样),虽然你可以使用“w”来获取它的内容,因为.Text是Range对象的“默认成员”,要设置它,你需要一些东西像
w.Text = "foo"
(当你进一步探索时,你可能会看到的其他观点:Word的“结束”在某些情况下将是Word之后的空格,并且Word集合会随着文本的变化而动态地改变 - 在某些情况下它可能会从集合末尾开始替换你的单词是有意义的......
For i = ActiveDocument.Words.Count to 1 Step -1
' do your thing...
Next