Макрос поиска и замены дат в документе 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