Поменять выделенные слова в одной строке местами - VBA
Формулировка задачи:
в word нужно поменять местами слова!
пример:
есть строка: яблоко-1 + тыква2 + м-малина + вишня*
нужно чтоб получилось следующее:
вишня* + м-малина + тыква2 + яблоко-1
есть код но он делает просто слова : яблоко + тыква + вишня > вишня + тыква + яблоко
Решение задачи: «Поменять выделенные слова в одной строке местами»
textual
Листинг программы
Sub Chexarda_Lite()
'переставляет слова (разделённые пробелами) в обратном порядке - в выделенном тексте одного абзаца'
Dim bytWcount As Byte, bytWnumber As Byte
With Selection
If Right(.Text, 1) = Chr(11) Or Right(.Text, 1) = Chr(13) Then .MoveLeft Extend:=wdExtend
End With
If Len(Selection) < 2 Then Exit Sub
Selection = StrReverse(Selection) 'сначала переворачиваем выделенный текст
bytWcount = Selection.Range.ComputeStatistics(wdStatisticWords)
Do
With Selection.Find
.Text = "[! ^0011^0013]{1;}" 'слово (из одной буквы и длиннее)
.Wrap = wdFindStop
.MatchWildcards = True 'подстановочные знаки - это флажок в окне по Ctrl-h (в Word)
.Execute 'выполнили поиск (и выделение) очередного слова
bytWnumber = bytWnumber + 1 'сосчитали слово
End With
Selection = StrReverse(Selection) 'найденное слово переворачиваем снова!
Loop Until bytWnumber = bytWcount 'ВЫХОД из цикла - когда поиск нашёл последнее слово
End Sub