Это старая версия документа.
В отчете от процесса в таблице со списком статусов процесса необходимо добавить столбец, который будет иметь дату бОльшую на год от даты "Дата изменения статуса" в одноименном столбце. Название этого столбца "Срок деятельности". Формат даты представлен как "дд.мм.гг".
Решение описывается с момента, когда в шаблоне отчета создана необходимая привязка типа "Список".
В шаблоне к необходимой таблице вручную добавляется столбец с заголовком "Срок деятельности". Кодом VBA анализируется дата в каждой ячейке столбца "Дата изменения статуса", и в соседнюю ячейку вставляется дата с увеличенной датой на год.
Дополнительный столбец добавляется в конец таблицы стандартными средствами Word.
Кодом VBA реализуется:
При работе с датой следует помнить, что она определена как текстовый тип данных.
Определяем название привязки типа "Список", которая представляет нужную таблицу. (см. Вставка привязки в шаблон отчета)
Sub ПослеВыполненияОтчета(ob As Variant, app As Variant) 'название з часть ипа Список, формирующей нужную таблицу StatusBookmarksName = "Изменеисок, формирующей нужную таблицу StatusBookmarksName = "Изменения_процесса_e1ded8b0" columnDate = 4 и Dim StatusOk As Boolean 'сначала счжащий исходную дату Bkm As Bookmark 'переменная типа Закладка ь названия привязки Dim StatusOk As Boolean в документе For Each Bkm In ActiveDocument закладки нет Dim Bkm As Bookmark па Закладка 'будем работать с таблицей через закладку еди закладок в документе For Each Bkm In ActiveDocument.Bookmarks If Bkm.Name = StatusBookmarksName Then StatusOk = True If StatusOk Then 'екладка есть countTableStatus = tableStatusцей через закладку Set tableStatus = Application.ActiveDocument.Bookmarks(StatusBookmarksName).Range.Tables(1) End If Next e).Range.Text 'получя часть If StatusOk Then dateEditLen = Len(dateимая закладка countTableStatus = tableStatus.Rows.Count dateEdрок таблицы For i = 2 To countTableStatus тый текст yearValidTeам таблицы кроме первой dateEdit = tableStatus.Cell(i, columnDate).Range.Text целое число + 1 год даты из ячейки dateEditLen = Len(dateEdit) (т.е. не двузекста If dateEditLen > 1 Then yearValidTпусто dateEdit = Left$(dateEdit, (dateEditLen - 2)) Else ола - чистый текст yearValidText = Right$(dateEdit, 2) е цифры года yearValidDigit = CInt(yearValidText) + 1 Len(dateEdit) - 2)) 'от исходной даты белое число + 1 год If yearValidDigit < 10 Then рки = дд.мм. + гг двузначное) yearValidText = "0" + CStr(yearValidDigit) End If 0 + число