Макрос поиска и замены дат в документе Word - VBA
Формулировка задачи:
Всем привет. Есть текстовый документ который периодически заполняется, в начале документа есть дата после неё идет запись, после снова дата и и запись и так далее. Как сделать чтобы при постановке первой даты следующие проставлялись автоматически +1 день.
Решение задачи: «Макрос поиска и замены дат в документе Word»
textual
Листинг программы
Sub sequence_dates() ' Макрос получения последовательности дат Dim myRange As Range ' объявляем переменные. Dim FirstDate As Date Dim IntervalType As String ' "yyyy" Год, "q" Квартал, "m" Месяц, ' "y" День года, "d" День, "w" День недели "ww" Неделя Dim Number As Integer IntervalType = "d" Number = 1 ' Приращение даты (1 день) Set myRange = ActiveDocument.Content myRange.Find.Execute FindText:="[0-9]{2}.[0-9]{2}.[0-9]{4}", Forward:=True, MatchWildcards:=True If myRange.Find.Found = True Then FirstDate = myRange.Text ' myRange.Collapse Direction:=wdCollapseEnd Else MsgBox "В документе отсутствуют даты для обработки" Exit Sub End If 'После того, как получили значение начальной даты, в цикле изменяем значения остальных дат Do myRange.Find.Execute FindText:="[0-9]{2}.[0-9]{2}.[0-9]{4}", Forward:=True, MatchWildcards:=True If myRange.Find.Found = True Then myRange.Text = DateAdd(IntervalType, Number, FirstDate) Number = Number + 1 ' Debug.Print (Number & vbTab & myRange.Text) myRange.Collapse Direction:=wdCollapseEnd Else: Exit Do End If Loop End Sub
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д