2016-10-05 6 views
1

Я хочу перевернуть слова в документе Word следующим образом: «elpmaS texT» становится «Sample Text».Обратное текстовое слово по слову

Я пытался что-то вроде этого:

For Each word In ActiveDocument.Words 
    word = StrReverse(word) 
Next word 

Однако это не работает.

Как это сделать?

ответ

3

При использовании для каждого цикла, вы не можете изменить слово, поэтому используйте для цикла:

Dim i As Integer 

For i = 1 To ActiveDocument.Words.Count Step 1 

    ActiveDocument.Words(i) = StrReverse(ActiveDocument.Words(i)) & " " 
Next i 
+0

Спасибо. Как это сделать для выбранного текста? – amitairos

0
Sub ReverseSelectedWords() 
    Dim i As Integer 
    Dim oWords As Words 
    Dim oWord As Range 

    Set oWords = Selection.Range.Words 

    For i = 1 To oWords.Count Step 1 

     Set oWord = oWords(i) 

     ''Make sure the word range doesn't include a space 
     Do While oWord.Characters.Last.text = " " 
      Call oWord.MoveEnd(WdUnits.wdCharacter, -1) 
     Loop 

     Debug.Print "'" & oWord.text & "'" 
     oWord.text = StrReverse(oWord.text) 

    Next i 

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