在Word中使用VBA查找和替換我有一個問題,如果我試圖用「John(non-breaking space)」替換「John(space)Smith」的所有實例,史密斯「中,查找替換函數將所有」約翰(空間)史密斯「以及所有」約翰(非破壞空間)史密斯「替換爲」約翰(非破壞空間)史密斯「。在我使用它並留下修改之前,我並不想用它自己替換它。我試過使用Chr(32)來選擇空間,但仍然無濟於事。 (我只想在這裏指出,我不是字面寫作(空間)和(非休息空間),但它只是象徵空間和非休息空間的地方)Word VBA查找/替換問題
看起來,查找/替換doesn在查找時不區分空間和非破壞空間。我試圖在相反的方向,但它工作正常(非破空間空間查找和替換)。所以我的理論是,對於查找/替換,一個沒有破壞的空間被認爲是一個空間,但是一個空間不被視爲一個不破壞的空間。瞭解這一點,任何人都可以提供解決方案來克服這個問題嗎?我可以以某種方式循環瀏覽文檔並找到「John(space)Smith」的實例並相應地進行替換嗎?循環方法應該避免這個問題,但我不知道如何實現它。
ActiveDocument.Range.Select
strFind = "John" & Chr(32) & "Smith"
strReplace = "John" & Chr(202) & "Smith" 'note the chr(202) is because i am working on a mac. 160 on pc i believe
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = strFind
.Replacement.Text = strReplace
.Forward = True
.Wrap = wdFindAsk
.Format = True
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
感謝,
卡梅倫
謝謝KazJaw做這個工作。唯一的問題是它在跟蹤變化時以某種方式在「Smith」之後放置NB空間。如果我關閉跟蹤更改但是,它正確。我將只需要在關閉軌跡的情況下運行。您認爲在這裏發現替換功能的問題? –