2014-03-13 146 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