2016-05-15 2 views
0

Я хочу заменить несколько знаков текста/пунктуации, напримерЗаменить несколько текста в диапазоне

"," с " "

"'s" с " "

,'s дополнителен текстом, который мне не нужен для следующего шага ,

Replace метод может изменить только один раз

есть ли другой способ заменить несколько текст из следующего предложения?

«Aabar остается сосредоточенным на расширение планов Абу-Даби, в Дубае впереди Экспо-2020»

Replace работает с , но 's все еще там.

Sub make_range_replace_string() 
Dim R As Range 
Dim F As String 
Do 
    selection.Find.ClearFormatting 
    selection.Find.Font.Bold = True 
    With selection.Find 
     .Forward = True 
     .Wrap = wdFindStop 
    End With 
    selection.Find.Execute 
    If selection.Find.Found Then 
    Set R = ActiveDocument.Range(selection.Range.Start, selection.Range.End) 

    F = Replace(R, ",", "") 

    MsgBox F 

Else 
Exit Do 
End If 
Loop 

End Sub 
+1

Вы можете вложить в 'Replace' функции, такие как' F = Replace (Заменить (R,», " "")," 's ""«) '. –

+0

@DougGlancy 'Replace' работает с', 'но' 's 'все еще есть. что мне делать? –

+1

Создайте двумерный массив со всеми замещающими словами и пройдите по списку с помощью вышеперечисленного кода. – Ralph

ответ

2

Doug Glancey правильный, просто используйте вместо этого «вместо». Другими словами; используйте функцию Replace несколько раз.

Dim F As String 

F = "Aabar remains focused on Abu Dhabi’s plans expansion, In Dubai ahead of Expo 2020" 
F = Replace(F, ",", " ") 
F = Replace(F, "`s", " ") 
F = Replace(F, "’s", " ") 
F = Replace(F, "'s", " ") 
F = Replace(F, Chr(39) & "s", " ") 
F = Replace(F, Chr(96) & "s", " ") 

MsgBox F 
+0

, так как вы заметили, что '' s 'прикреплен к тексту, поэтому 'Replace (F," s "," ")' не работает. Должен быть другой путь? –

+1

Странно, я отредактировал ответ с большим количеством вариаций '' s'''', –

Смежные вопросы