我正在跟踪文档,并使用MS Project来概述任务的实际持续时间,例如:
### ID | task | Duration | Start | Finish ###
1 | Document version 1 issue | 0 days | date1 | date1
2 | Comments version 1 | 0 days | date2 | date2
3 | Document version 2 issue | 0 days | date3 | date3
4 | Review approval ver 2 | 0 days | date4 | date4
所有任务都取决于外部因素,这就是为什么持续时间设置为0和开始 - 结束是相同的日期。根据文档的不同,审核和批准可能需要更长时间。
我想要做的是添加另一个容易添加的列,以计算任务之间的实际持续时间。例如:
### ID | task | Duration | Start | Finish | DAYS ###
1 | Document version 1 issue | 0 days | date1 | date1 |
2 | Comments version 1 | 0 days | date2 | date2 | days between ID2 and ID1
3 | Document version 2 issue | 0 days | date3 | date3 | days between ID3 and ID2
4 | Review approval ver 2 | 0 days | date4 | date4 | days between ID4 and ID3
我曾尝试使用海关字段,但无法弄清楚如何在另一个任务ID行中检索所选任务ID(在另一行中)的日期。
让我们说我会做类似的事情
则DateDiff( “d”,完成([ID]),完成([ID] -1)
然后我希望得到天数差异,以便我可以从经验中学习实际需要多长时间来审查某些信息。
有什么建议来执行这项任务吗?
谢谢!
OK最后根据这句话......
然后我希望得到天数差异,以便我可以从经验中学习实际需要多长时间来审查某些信息。
......我建议不要做任何特殊的编码。相反,我建议你改变你的日程安排。我会在代表审查工作的这些里程碑之间加入“审核”任务。最初,他们的持续时间将根据被审查事物的大小和性质进行估算,但随着审核流程的进行,可能会更新。
如果你必须以这种方式构造它,那么这里是代码:
Sub CalcCustomDuration()
Dim P As Project
Dim T As Task
Set P = Application.ActiveProject
For Each T In P.Tasks
If Not (T Is Nothing) Then
If T.Number1 > 0 Then
T.Number2 = Application.DateDifference(P.Tasks(T.ID - 1).Finish, T.Start) / 60 / 8
End If
End If
Next T
End Sub