Брайан хотел бы ввести дату, указав только месяц и день.

Excel предполагает, что год является текущим годом, но он хотел бы, чтобы год был годом, когда эта дата наступит в следующий раз. Например, если сегодня 01.06.18 и Брайан вводит 7/1, Excel автоматически принимает 2018 год. Если Брайан вводит 5/1 в тот же день, то Excel должен принять 2019 год как 5/1. уже в прошлом. Брайан знает, что он может использовать формулу для отображения даты в другой ячейке, но задается вопросом, как заставить Excel использовать этот подход по умолчанию, когда он вводит даты в ячейки.

За исключением экспериментов с системной датой или внесения некоторых изменений в даты после ввода, решение требует использования макроса. Подойдет следующий обработчик событий:

Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Cells.Count > 1 Then Exit Sub     If Target = "" Then Exit Sub

If IsDate(Target) Then         If Target < Date Then             If Year(Target) = Year(Date) Then                 Application.EnableEvents = False                     Target.Value = DateAdd("yyyy", 1, Target)

Application.EnableEvents = True             End If         End If     End If End Sub

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

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

Макрос не повлияет на даты, введенные в несколько ячеек одновременно, и не повлияет на даты, введенные как текстовые значения.

_Примечание: _

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

link: / excelribbon-ExcelTipsMacros [Щелкните здесь, чтобы открыть эту специальную страницу в новой вкладке браузера].

ExcelTips — ваш источник экономичного обучения Microsoft Excel.

Этот совет (13601) применим к Microsoft Excel 2007, 2010, 2013, 2016, 2019 и Excel в Office 365.