Поменять выделенные слова в одной строке местами - 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

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 3.667 из 5
Похожие ответы