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

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


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

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

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