Запись времени ввода данных (Microsoft Excel)
Винай использует лист Excel для ввода данных. Информация вводится в столбец A, и Vinay хотел бы иметь способ автоматически добавлять время в столбец B рядом со значением, введенным в столбце A, которое указывает, когда было введено значение.
Есть несколько способов выполнить эту задачу. Первый — вручную ввести время, выбрав соседнюю ячейку в столбце B и нажав Ctrl + Shift +; (это точка с запятой). Этот ярлык вводит текущее время в ячейку. Проблема с этим подходом, конечно, в том, что он не автоматический и требует дополнительных движений и нажатий клавиш.
Лучшим подходом было бы использовать формулу для ввода времени. Функция СЕЙЧАС возвращает текущую дату и время, и вы можете использовать их в ячейке следующим образом:
=NOW()
Конечно, эта простая формула обновляется каждый раз при пересчете таблицы. Это означает, что функция возвращает текущее время каждый раз, когда вы вводите значение в столбец A. Это нежелательно, потому что вы не хотите обновлять предыдущее время. Вы можете попробовать использовать формулу, чтобы проверить, есть ли что-то в столбце A, например:
=IF(A3="","",IF(B3="",NOW(),B3))
Проблема в том, что подобная формула вводит в рабочий лист круговую ссылку, что создает целый ряд проблем, с которыми нужно работать. Лучшим подходом является создание макроса, который автоматически запускается каждый раз, когда что-то вводится в столбец A. Щелкните правой кнопкой мыши вкладку рабочего листа, используемого для ввода данных, и выберите «Просмотреть код» в контекстном меню. Вы увидите окно кода для рабочего листа в редакторе Visual Basic, а затем введите его в окно:
Private Sub Worksheet_Change(ByVal Target As Excel.Range) Dim rCell As Range Dim rChange As Range On Error GoTo ErrHandler Set rChange = Intersect(Target, Range("A:A")) If Not rChange Is Nothing Then Application.EnableEvents = False For Each rCell In rChange If rCell > "" Then With rCell.Offset(0, 1) .Value = Now .NumberFormat = "hh:mm:ss" End With Else rCell.Offset(0, 1).Clear End If Next End If ExitHandler: Set rCell = Nothing Set rChange = Nothing Application.EnableEvents = True Exit Sub ErrHandler: MsgBox Err.Description Resume ExitHandler End Sub
Когда макрос установлен, каждый раз, когда вы вводите что-либо в ячейку в столбце A, соседняя ячейка в столбце B будет содержать дату и время (отформатированные для отображения только времени). Если вы удалите что-то в столбце A, то соседняя ячейка в столбце B также будет очищена.
ExcelTips — ваш источник экономичного обучения Microsoft Excel.
Этот совет (12811) применим к Microsoft Excel 2007, 2010 и 2013. Вы можете найти версию этого совета для старого интерфейса меню Excel здесь:
link: / excel-Recording_a_Data_Entry_Time [Запись времени ввода данных]
.