1

我正在考虑构建一个模板来管理我的工作时间。

目前我一直在寻找一些例子,但没有发现很多对我来说很有意义的例子:(。

我正在看的是一个带有宏的excel模板,用于记录早上的第一次登录事件和一天结束时的最终注销(或锁定)事件。

这需要一次完成一个星期,但只需要例子来让我开始。

一些很长的东西......:

如果事件日志日期在单元格中指定日期,则返回第一次登录时间,然后返回同一日期的最后一次注销或锁定事件。

这只是基础知识,然后我将填写其余部分以说明休息时间等...

谢谢你。

4

1 回答 1

2

我继续对某些功能进行了一些假设,因为您希望能够对其进行调整以满足您自己的需求。

我认为最有可能出现以下情况:

  1. 工作簿在早上打开(在启动文件夹中放置工作簿的快捷方式),然后手动保存并关闭(我让你有乐趣弄清楚如何自动化这个)。
  2. 在注销之前重新打开工作簿(我认为可以使用 Windows 自动任务),然后再次手动保存并关闭
  3. 您正在工作的工作表称为“模板
  4. 建议列: Date | Log-On Time | Log-Out Time | Total Time

如果您在真正注销之前无意中打开了工作簿,只需擦除错误信息,保存关闭重新打开即可。

最后,这是代码:

Private Sub Workbook_Open()
    Dim currentTime As Date, currentDay As Date
    currentTime = Format(Now(), "hh:mm")
    currentDay = Format(Now(), "mm/dd/yyyy")

    Dim template As Worksheet
    Set template = Worksheets("Template")

    With template
        'find the last log-out to use the next line
        last = .Cells(Rows.Count, 3).End(xlUp).Row + 1

        If .Cells(last, 2) = "" Then
        'log-on event
            .Cells(last, 1) = currentDay
            .Cells(last, 2) = currentTime

        Else
        'log-out event
            .Cells(last, 3) = currentTime
            .Cells(last, 4) = Format(currentTime - CDate(.Cells(last, 2)), "hh:mm")
        End If
    End With
End Sub

编辑:我认为您也可以弄清楚如何轻松计算休息时间。

于 2014-01-28T04:06:18.753 回答