Дата понедельника в пятничном отчете

Каждую пятницу Нед создает отчет, который распространяется в его компании. Он хотел бы, чтобы в заголовке отчета всегда указывалась дата предыдущего понедельника. Он задается вопросом, как он может динамически отображать дату понедельника текущей недели.

Если бы Нед создавал отчет в Excel, вычислить дату прошедшего понедельника было бы очень просто. Однако это не Excel; отчет в Word. Так что задача далеко не такая простая. Однако есть несколько подходов, которые вы можете использовать.

Один из подходов – это фактически создать документ Word для вашего отчета в понедельник. Вам не нужно ничего помещать в отчет; просто создайте документ, который будет использоваться в конце недели для создания отчета. Затем вы можете включить поле в заголовок, в котором будет вставлена ​​дата создания документа (поле CreateDate). Он всегда будет отражать понедельник, в который был создан документ.

Если это не соответствует вашим потребностям (возможно, вы по какой-то причине не можете создать документ в понедельник), вы можно попробовать создать дату, используя вложенное поле. Возможны следующие варианты:

 {date  @ "MMMM {= {date  @" dd "} -5} yyyy"} 

Помните, что каждая пара фигурных скобок поля необходимо ввести с помощью Ctrl + F9 . Составное поле будет работать для многих дат, но возникнут проблемы, если пятница, в которую вы вычисляете поле, будет в пределах первых пяти дней месяца. (В эти дни вычисление во внутреннем поле вернет отрицательное значение.) Легкого решения этой проблемы нет.

Самый простой подход – использовать макрос для вставки даты. Макросы могут довольно легко вычислить дату. Вот пример небольшого макроса, который может вычислить правильную дату:

 Sub MondayBeforeToday () Subtract = Choose (Weekday (Date), 6, 7, 1, 2, 3, 4,  5) DateFormat = "dddd mm/dd/yyyy" Selection.InsertBefore Format ((Date - Subtract), DateFormat) End Sub 

Все, что вам нужно сделать, это разместить точку вставки там, где вы хотите дату, а затем запустите макрос. Его можно запускать в любой день недели, и он всегда будет вставлять дату предыдущего понедельника.

Оцените статью
Frestage.ru
Добавить комментарий