2011-05-17 80 views
1

我發現這個宏在Microsoft Word 2010中一次替換多個字符串。爲什麼不用這個VBA代碼替換特殊字符?

我遇到了特殊字符的問題。我錄製了一個宏並手動替換了字符,這樣我就可以看到特殊字符應該如何寫入VBA代碼中。

當我試圖把它們放在一個字符串中時,它們就像是被忽略。

如何替換包括特殊字符在內的所有內容?

CHRW(728)是˘

CHRW(711)是

Sub MultiReplace() 
Dim StrOld As String, StrNew As String 
Dim RngFind As Range, RngTxt As Range, i As Long 
StrOld = "ChrW(728),ChrW(711),H" 
StrNew = ".,Þ,¼" 
Set RngTxt = Selection.Range 
For i = 0 To UBound(Split(StrOld, ",")) 
    Set RngFind = RngTxt.Duplicate 
    With RngFind.Find 
    .ClearFormatting 
    .Replacement.ClearFormatting 
    .Text = Split(StrOld, ",")(i) 
    .Replacement.Text = Split(StrNew, ",")(i) 
    .Format = False 
    .MatchCase = True 
    .MatchWholeWord = False 
    .MatchAllWordForms = False 
    .MatchWildcards = False 
    .Execute Replace:=wdReplaceAll 
    End With 
Next 
End Sub 

回答

2

我計算出來。更換這行:

StrOld = "ChrW(728),ChrW(711),H" 

StrOld = "" & ChrW(728) & "," & ChrW(711) & ",H"