Excel宏扫描列中的空白单元格,然后插入当前时间

时间:2014-10-20 23:50:46

标签: excel vba excel-vba excel-2007

经过几个小时的搜索后,我找不到任何如何执行此操作的示例。

我正在尝试在Excel工作表上创建2个按钮以进行时间跟踪(以便轻松记录我的日常活动)。一个时钟输入按钮和一个时钟输出按钮。使用正确的脚本设置和工作按钮。目前,他们只使用以下内容将当前时间写入所选单元格:

ActiveCell.Value = Time

这很好用,但我想要一些更自动化的东西。 我希望每个按钮要做的是从第2行扫描列(时钟输入,例如列C)到第一个空白单元格,然后将当前时间插入该单元格(所以C2将具有时间)。下次按下按钮时,它会将时间输入C3。接下来按下会输入时间到C4等等。这是我想要做的基本想法。

我试图在Excel 2007中执行此操作,如果这很重要 的加成: 如何使用一个按钮同时执行两个时钟输入/输出。不需要,但会很有趣。

谢谢,

2 个答案:

答案 0 :(得分:0)

Sub clock_in()
    Cells(2, 3).Select ' starts at cell C2
    Do Until ActiveCell = ""
       ActiveCell.Offset(1, 0).Select
    Loop
    ActiveCell = Time
End Sub

工作原理:此例程从单元格C2开始,沿着列向下查找第一个使用Do Loop语句的空白单元格。一旦找到空白单元格,do循环结束,时间放在空白(活动)单元格中。

答案 1 :(得分:0)

另一种方式:

Sub clock_in()
    Cells(2, 3).Select ' starts at cell C2
    If Cells(2, 3) = "" Then
        Cells(2, 3) = Time
        Exit Sub
    End If
    If Cells(3, 3) = "" Then
        Cells(3, 3) = Time
        Exit Sub
    End If
    Selection.End(xlDown).Offset(1, 0).Value = Time
End Sub

此路由检查以查看单元格C2是否为空。如果是,则将时间放在单元格C2中。如果它不是空的,它会检查单元格C3并将时间放在该单元格中。但如果C3不为空,则使用end select语句查找下一个空白单元格。它检查单元格C2&amp; C3如果您执行end select语句并且单元格C2C3为空,则会显示在电子表格中C列的底部。< / p>