在单元格中输入时间时,Excel会在时间的小时和分钟部分之间键入冒号。但是,由于冒号在键盘上的位置,因此为您输入的每个时间值输入一个冒号会使您的速度变慢,尤其是在您要输入很多时间值的情况下。

因此,您可能想知道是否有一种方法可以跳过输入冒号,而让它们自动输入还是一次全部输入。

自动输入它们需要花费更多时间,需要使用宏,并且很快就会涉及。可以通过公式一次输入所有冒号,如下所示:

=TIMEVALUE(REPLACE(A1,3,0,":"))

此公式假定时间值(不带冒号)位于单元格A1中,并且由四位数字组成。因此,如果单元格A1包含诸如1422的值,则该公式将返回14:22作为实际时间值。 (您可能需要将单元格格式化为时间值。)

如果您的原始输入单元格可能包含仅使用三位数的时间,例如813而不是0813,那么您需要使用略有不同的公式:

=TIME(LEFT(A1,LEN(A1)-2),RIGHT(A1,2),0)

如果您希望自动插入冒号,则可以使用宏。您可以创建一个宏,该宏将检查计划在工作表中添加日期的单元格区域,然后在输入中插入冒号。这是通过创建由SheetChange事件触发的宏来完成的。以下宏就是这样的宏:

Private Sub Workbook_SheetChange(ByVal Sh As Object, _   ByVal Target As Excel.Range)

Dim TimeStr As String

On Error GoTo EndMacro     If Application.Intersect(Target, Range("C7:D15")) Is Nothing Then         Exit Sub     End If     If Target.Cells.Count > 1 Then         Exit Sub     End If     If Target.Value = "" Then         Exit Sub     End If

Application.EnableEvents = False     With Target         If .HasFormula = False Then             Select Case Len(.Value)

Case 1 ' e.g., 1 = 00:01 AM                     TimeStr = "00:0" & .Value                 Case 2 ' e.g., 12 = 00:12 AM                     TimeStr = "00:" & .Value                 Case 3 ' e.g., 735 = 7:35 AM                     TimeStr = Left(.Value, 1) & ":" & _                     Right(.Value, 2)

Case 4 ' e.g., 1234 = 12:34                     TimeStr = Left(.Value, 2) & ":" & _                     Right(.Value, 2)

Case Else                     Err.Raise 0             End Select             .Value = TimeValue(TimeStr)

End If     End With     Application.EnableEvents = True

Exit Sub

EndMacro:

MsgBox "You did not enter a valid time"

Application.EnableEvents = True     ActiveCell.Offset(-1, 0).Select End Sub

宏所做的第一件事是检查刚刚输入的数据是否在C7:D15范围内。如果不是,则宏退出。它还检查以确保仅选择了一个单元格,并且该单元格不为空。如果满足所有这些条件,则宏将检查单元格中值的长度,并在必要时用前导零填充。该宏基于在Chip Pearson网站上找到的宏,这里:

http://cpearson.com/excel/DateTimeEntry.htm

注意:

如果您想知道如何使用此页面(或_ExcelTips_网站上的任何其他页面)中描述的宏,我准备了一个特殊页面,其中包含有用的信息。

_ExcelTips_是您进行经济高效的Microsoft Excel培训的来源。

本技巧(2412)适用于Microsoft Excel 97、2000、2002和2003。可以在以下功能区中为Excel的功能区界面(Excel 2007及更高版本)找到本技巧的版本: