2011-05-17 83 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"