Замена символов через раз - VB

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

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

итак, есть код найденный тут на форуме
Листинг программы
  1. Sub mac1()
  2. Dim x
  3. With Selection.Find
  4. .ClearFormatting
  5. .Replacement.ClearFormatting
  6. .Replacement.Text = ""
  7. .Forward = True
  8. .Wrap = wdFindContinue
  9. .Format = False
  10. .MatchCase = True
  11. .MatchWholeWord = False
  12. .MatchWildcards = False
  13. .MatchSoundsLike = False
  14. .MatchAllWordForms = False
  15. End With
  16. Selection.HomeKey Unit:=wdStory
  17. For Each x In Split(UDAL)
  18. Selection.Find.Execute x, Replace:=wdReplaceAll
  19. Next
  20. Selection.Find.Execute "1", ReplaceWith:="2", Replace:=wdReplaceAll
  21. End Sub
оно заменяет (в данном случае) цифру 1 на 2. Но как сделать так чтобы заменяло не каждую единицу, а например через раз? Я так понимаю нужно подшаманить wdReplaceAll, но неуверен что прав в этом. какова цель: чтобы 111111..... было 2121212.... возможно ли это? забыл указать - кодес этот под макрос для ворда

Решение задачи: «Замена символов через раз»

textual
Листинг программы
  1. Sub OddTextFilter()
  2. Const s = "1" 'заменяемый символ (в нечётных позициях)
  3. Const z = "2" 'заменяющий символ
  4. Dim even As Boolean 'счётчик (датчик) чётности найденного s
  5.  
  6. With Selection
  7.     .HomeKey wdStory 'перевод курсора в начало документа Word
  8.    .Find.Text = s  'настройка диалога поиска/замены (который по CTRL h)
  9.  
  10.    
  11.     Do While .Find.Execute(Replace:=wdReplaceNone) 'пока находим этот символ
  12.        If Not even Then    'если он нечётный - заменяем на z
  13.            .TypeText z     'впечатали z вместо найденного s
  14.            .Collapse Direction:=wdCollapseEnd 'сброс выделения после очередной замены
  15.        End If
  16.        
  17.         even = Not even 'расчёт на "первый-второй"
  18.    Loop
  19.    
  20. End With
  21. End Sub

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


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

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

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

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

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

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