Поменять выделенные слова в одной строке местами - VBA

Узнай цену своей работы

Формулировка задачи:

в word нужно поменять местами слова! пример: есть строка: яблоко-1 + тыква2 + м-малина + вишня* нужно чтоб получилось следующее: вишня* + м-малина + тыква2 + яблоко-1 есть код но он делает просто слова : яблоко + тыква + вишня > вишня + тыква + яблоко
Листинг программы
  1. Sub popa()
  2. w = Selection.Words.Count
  3. Selection.InsertAfter vbCrLf
  4. For i = w To 1 Step -1
  5. Selection.InsertAfter Selection.Words(i)
  6. 'добавим пробел, если его нет в конце слова
  7. If Right(ActiveDocument.Words(i), 1) <> " " Then Selection.InsertAfter " "
  8. Next i
  9. End Sub

Решение задачи: «Поменять выделенные слова в одной строке местами»

textual
Листинг программы
  1. Sub Chexarda_Lite()
  2. 'переставляет слова (разделённые пробелами) в обратном порядке - в выделенном тексте одного абзаца'
  3. Dim bytWcount As Byte, bytWnumber As Byte
  4.  
  5.     With Selection
  6.     If Right(.Text, 1) = Chr(11) Or Right(.Text, 1) = Chr(13) Then .MoveLeft Extend:=wdExtend
  7.     End With
  8.    
  9. If Len(Selection) < 2 Then Exit Sub
  10.  
  11. Selection = StrReverse(Selection)       'сначала переворачиваем выделенный текст
  12.  
  13. bytWcount = Selection.Range.ComputeStatistics(wdStatisticWords)
  14. Do
  15.     With Selection.Find
  16.     .Text = "[! ^0011^0013]{1;}"        'слово (из одной буквы и длиннее)
  17.    .Wrap = wdFindStop
  18.     .MatchWildcards = True              'подстановочные знаки - это флажок в окне по Ctrl-h (в Word)
  19.    .Execute                            'выполнили поиск выделение) очередного слова
  20.    bytWnumber = bytWnumber + 1         'сосчитали слово
  21.    End With
  22.  
  23.     Selection = StrReverse(Selection)   'найденное слово переворачиваем снова!
  24.    
  25. Loop Until bytWnumber = bytWcount   'ВЫХОД из цикла - когда поиск нашёл последнее слово
  26.  
  27. End Sub

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


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

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

6   голосов , оценка 3.667 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы