记录数据输入时间(Microsoft Excel)
Vinay使用Excel工作表进行数据输入。在A列中输入信息,Vinay希望有一种自动在B列中添加时间的方法,该时间与A列中输入的值相邻,指示何时输入该值。
有几种不同的方法可以完成此任务。第一种是通过选择B列中的相邻单元格并按Ctrl + Shift +来手动输入时间。 (这是分号)。该快捷方式在单元格中输入当前时间。当然,这种方法的问题在于它不是自动的,并且需要一些额外的动作和击键才能实现。
更好的方法是使用公式输入时间。 NOW函数返回当前日期和时间,您可以通过以下方式在单元格中使用它:
=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列中的相邻单元格也会被清除。
同样,请注意,您可以更改NumberFormat属性的设置以反映您希望日期显示的方式。例如,您可以通过将“ hh:mm:ss”更改为“ h:mm:ss AM / PM”来更改为十二小时的时间格式。
_ExcelTips_是您进行经济高效的Microsoft Excel培训的来源。
本技巧(3116)适用于Microsoft Excel 97、2000、2002和2003。可以在以下功能区中为Excel的功能区界面(Excel 2007及更高版本)找到本技巧的版本: