我正在考虑构建一个模板来管理我的工作时间。
目前我一直在寻找一些例子,但没有发现很多对我来说很有意义的例子:(。
我正在看的是一个带有宏的excel模板,用于记录早上的第一次登录事件和一天结束时的最终注销(或锁定)事件。
这需要一次完成一个星期,但只需要例子来让我开始。
一些很长的东西......:
如果事件日志日期在单元格中指定日期,则返回第一次登录时间,然后返回同一日期的最后一次注销或锁定事件。
这只是基础知识,然后我将填写其余部分以说明休息时间等...
谢谢你。
我正在考虑构建一个模板来管理我的工作时间。
目前我一直在寻找一些例子,但没有发现很多对我来说很有意义的例子:(。
我正在看的是一个带有宏的excel模板,用于记录早上的第一次登录事件和一天结束时的最终注销(或锁定)事件。
这需要一次完成一个星期,但只需要例子来让我开始。
一些很长的东西......:
如果事件日志日期在单元格中指定日期,则返回第一次登录时间,然后返回同一日期的最后一次注销或锁定事件。
这只是基础知识,然后我将填写其余部分以说明休息时间等...
谢谢你。
我继续对某些功能进行了一些假设,因为您希望能够对其进行调整以满足您自己的需求。
我认为最有可能出现以下情况:
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
编辑:我认为您也可以弄清楚如何轻松计算休息时间。