Excel VBA 巧列工作计划
有一种工作内容叫做给计划,工程师常常需要给出工作计划安排,工作天数和工作时期。所以Engineer常常需要对着日历一遍又一遍地核对日期与天数,浪费大量时间且错误率较高。作者写了一个VBA小程序,指定工作天数后,小工具会自动扣除节假日,周末,自动化计算各项工作需要的开始时间和结束时间,方便某些客户计划制定。工作表格设计如下:
脚本设计如下:
Public Sub CalcDate()
Call CalcDateInternal("D3", "G32")
End Sub
Private Sub CalcDateInternal(Optional RgStart As String = "D3", Optional RgEnd As String = "G32")
Dim Rg As Range
Dim Ws As Worksheet
Set Ws = Worksheets("Sheet3")
Set Rg = Ws.Range(RgStart, RgEnd)
Dim DateStartDay As String
Dim DateStopDay As String
Dim DateStartDayRow, DateStartDayCol, TimeNeedDays As Integer
DateStartDayRow = 1
DateStartDayCol = 3
DateStartDay = Ws.Cells(DateStartDayRow, DateStartDayCol)
For Each Row In Rg.Rows
Row.Cells(1, 2) = "Martyn哥"
Row.Cells(1, 3) = DateStartDay
DateStopDay = CalcCurrStopDay(DateStartDay, Row.Cells(1, 1))
Row.Cells(1, 4) = DateStopDay
DateStartDay = CalcNextStartDat(DateStopDay)
Next
End Sub
Private Function CalcNextStartDat(ByRef Curr As String) As Date
Dim NeedDays As Integer
NeedDays = 1
CalcNextStartDat = Application.WorksheetFunction.WorkDay(Curr, NeedDays)
End Function
Private Function CalcCurrStopDay(ByRef Curr As String, NeedDays As Integer) As Date
CalcCurrStopDay = Application.WorksheetFunction.WorkDay(Curr, NeedDays - 1)
End Function
最后,您可以用=NETWORKDAYS(start_date,end_date,holidays)来计算验算一下您的安排是否正确。
工具小脚本,作抛砖引玉,如有兼容性问题见谅!
工程师列工作计划时,核对日期与天数耗时且易出错。作者编写 Excel VBA 小程序,指定工作天数后,可自动扣除节假日、周末,计算工作开始和结束时间,还给出工作表格和脚本设计,可用函数验算安排是否正确。

1678

被折叠的 条评论
为什么被折叠?



