我正在跟踪文档,并使用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)
然后,我希望得到不同的日子,以便我可以从经验中学到审查某些信息实际上需要多长时间。
有人建议执行此任务吗?
谢谢!
答案 0 :(得分:0)
好的,根据这句话的结尾...
然后,我希望得到不同的日子,以便我可以从经验中学到审查某些信息实际上需要多长时间。
...我建议不要做任何特殊的编码。相反,我建议您更改时间表的结构。我将在这些里程碑之间放入“审阅”任务,这些任务代表进行审阅的工作。最初,它们的持续时间是根据要审核的事物的大小和性质进行估算,但可以随着审核过程的进行而更新。
如果您必须以这种方式进行结构化,则代码如下:
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