Изменение года по умолчанию для дат (Microsoft Excel)
При вводе дат на лист 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.