Как в Excel настроить быстрый ввод даты без разделителей

Если вам часто приходится вводить даты и время в ячейки, то вам должна понравиться идея писать их сокращенно, без точек-дробей – просто как число. Чтобы в заданном диапазоне ячеек листа, например, число 250616 после ввода и нажатия клавиши Enter автоматически превращалось в 25.06.2016.

Как в Excel настроить быстрый ввод даты без разделителей

Как в Excel настроить быстрый ввод даты без разделителей

Для реализации такого возможны два варианта.

Первый – использовать функцию преобразования текста в дату ДАТАЗНАЧ (DATEVALUE) и функции извлечения фрагментов из текста ЛЕВСИМВ (LEFT), ПРАВСИМВ (RIGHT) и ПСТР (MID), чтобы разделить шесть введенных чисел по два, добавить к ним точки и составить из них полноценную дату в соседней ячейке.

Для реализации быстрого ввода даты возможны два варианта

Для реализации быстрого ввода даты возможны два варианта

В англоязычном варианте: =DATEVALUE(LEFT(D1;2)&”.”&MID(D1;3;2)&”.”&RIGHT(D1;2)).

Если же хочется выполнять это преобразование прямо в той же ячейке, куда вводятся числа, то без макроса не обойтись. Для этого щелкните по ярлычку листа, куда будут вводиться даты и время, и выберите команду Исходный текст (View Code). В открывшееся окно редактора Visual Basic вставьте следующий код.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Private Sub Worksheet_Change(ByVal Target As Range)
Dim vVal
Dim StrVal As String
Dim dDate As Date
	If Target.Cells.Count > 1 Then Exit Sub
    If Not Intersect(Target, Range("A2:A10")) Is Nothing Then
        With Target
            StrVal = Format(.Text, "000000")
            If IsNumeric(StrVal) And Len(StrVal) = 6 Then
                Application.EnableEvents = False
                dDate = DateValue(Left(StrVal, 2) & "/" & Mid(StrVal, 3, 2) & "/" & Right(StrVal, 2))
                .NumberFormat = "dd/mm/yyyy"
                .Value = CDate(DateSerial(Year(dDate), Month(dDate), Day(dDate)))
            End If
        End With
	End If
    Application.EnableEvents = True
End Sub

Диапазон A2:A10 в коде замените на свою область листа, куда подобным образом собираетесь вводить даты.


Top