При вводе дат на лист Excel предоставляет довольно много возможностей для их ввода. Одна область, где предоставляется широта, — это когда дело доходит до включения года. Если вы включите год (например, 3/2/08), это прекрасно. Если вы не укажете год (например, 3/2), Excel добавит текущий год к тому, что вы вводите.

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

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

Один из способов справиться с этим — изменить системную дату на вашем компьютере.

В Windows уменьшите системную дату на один год. Затем все даты, которые вы вводите, поменяются на прошлый год. Однако это имеет разветвления в других программах, если вы не забыли изменить дату в системе.

Это также может испортить ввод данных, если во второй половине января и в начале февраля вы начнете вводить даты с этого года, а Excel автоматически добавит к ним прошлогодний год.

Выполнение чего-либо более сложного обязательно требует использования макроса.

Рассмотрим следующий пример, который нужно добавить в окно кода для рабочего листа:

Private Sub Worksheet_Change(ByVal Target As Range)

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

If DateValue(Target) > Date Then         Application.EnableEvents = False             Target = DateAdd("yyyy", -1, Target)

Application.EnableEvents = True     End If End Sub

Этот макрос запускается автоматически при каждом изменении на листе. Если вносятся изменения в одну ячейку в столбце A и вводится дата, которая больше сегодняшней даты, то год вычитается из введенной даты.

Это отлично работает при условии, что вы обычно вводите даты либо в прошлом году, либо в месяцах текущего года. Если вы специально добавляете дату в далеком будущем (например, ввод 6/11/17 на 3/2/16), то год все равно увеличивается на единицу. Макрос, конечно, можно изменить, чтобы проверять, относится ли вводимая дата к последним двум месяцам года и действительно ли дата вводится в течение первых двух месяцев года, прежде чем выполнять уменьшение год.

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

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

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

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

Этот совет (3360) применим к Microsoft Excel 97, 2000, 2002 и 2003.