Почему этот код VBA не заменяет специальные символы? - PullRequest
1 голос
/ 17 мая 2011

Я нашел этот макрос для замены нескольких строк одновременно в Microsoft Word 2010.

У меня проблемы со специальными символами.Я записал макрос и заменил символы вручную, чтобы я мог видеть, как специальные символы должны быть записаны в коде 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

1 Ответ

2 голосов
/ 17 мая 2011

Я понял это.Замена этой строки:

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

на

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