2014-03-13 140 views
0

我试图找到并开始使用相同的字符结束的所有字,并改变它们。现在我只想让他们都表示“富”。VBA字每个字替换

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 

如果我做的wDebug.Print,我得到正确的结果,但它仅在该范围内 - 我如何获得这个词在文档中真正改变?

回答

0

w是一个单词范围(理想情况下应该声明为这样),尽管您可以使用“w”来获取其内容,因为.Text是Range对象的“默认成员”,要设置它,您需要像

w.Text = "foo" 

(其他点,你可能会看到当你进一步探讨:在一个Word的“终结”会在某些情况下是单词后面的空格,道集合动态改变作为文本的变化 - 在某些情况下,它可能是有意义的,以取代你的话开始在集合的结尾......

For i = ActiveDocument.Words.Count to 1 Step -1 
' do your thing... 
Next