Каждую пятницу Нед создает отчет, который распространяется в его компании. Он хотел бы, чтобы в заголовке отчета всегда указывалась дата предыдущего понедельника. Он задается вопросом, как он может динамически отображать дату понедельника текущей недели.
Если бы Нед создавал отчет в 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
Все, что вам нужно сделать, это разместить точку вставки там, где вы хотите дату, а затем запустите макрос. Его можно запускать в любой день недели, и он всегда будет вставлять дату предыдущего понедельника.