自动向下推行

自动向下推行

我正在尝试制作时间表文档,并希望对其进行格式化

-----------------------------------------
|   Date   | Time In | Time Out | Hours |
-----------------------------------------
| 1/5/2014 |         |          |   0   |
-----------------------------------------
| 1/4/2014 |  09:00  |  12:00   |   3   |
-----------------------------------------
| 1/3/2014 |  09:30  |  14:00   |  4.5  |
-----------------------------------------
| 1/2/2014 |  08:00  |  17:00   |   9   |
-----------------------------------------
| 1/1/2014 |  12:00  |  13:00   |   1   |
-----------------------------------------

最近的日期在顶部。我希望当我在 1/5/2014 行中输入时间时,新行会自动将 1/5/2014 替换为

-----------------------------------------
|   Date   | Time In | Time Out | Hours |
-----------------------------------------
| 1/6/2014 |         |          |   0   |
-----------------------------------------
| 1/5/2014 |  09:00  |  13:00   |   4   |
-----------------------------------------
| 1/4/2014 |  09:00  |  12:00   |   3   |
-----------------------------------------
| 1/3/2014 |  09:30  |  14:00   |  4.5  |
-----------------------------------------
| 1/2/2014 |  08:00  |  17:00   |   9   |
-----------------------------------------
| 1/1/2014 |  12:00  |  13:00   |   1   |
-----------------------------------------

这在 Excel 中可以实现吗?

答案1

事件Worksheet_Change宏非常适合这种情况。右键单击工作表的名称选项卡,然后选择查看代码。当 VBE 打开时,将以下内容粘贴到右侧窗格中,标题为Book1 - Sheet1 (代码)

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Count > 1 Then Exit Sub
    If Not Intersect(Target, Range("B2:C2")) Is Nothing Then
        If Application.Count(Range("B2:C2")) = 2 Then
            On Error GoTo Fìn
            Application.EnableEvents = False
            Range("A2:D2").Insert Shift:=xlDown, CopyOrigin:=xlFormatFromRightOrBelow
            Range("A2") = Range("A3").Value + 1
            Range("D2").Formula = Replace(Range("D3").Formula, 3, 2)
            Range("B2").Activate
        End If
    End If
Fìn:
    Application.EnableEvents = True
End Sub

点击Alt+Q返回工作表。一旦 B2 和 C2 都输入了时间值,就会添加一个包含相应公式的新行。

        时间卡添加行

=(C2-B2)*24我使用了D 列中的公式。

相关内容