如何从自定义列中的任何ID检索完成日期? (自定义字段?)

问题描述 投票:0回答:1

我正在跟踪文档,并使用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)

然后我希望得到天数差异,以便我可以从经验中学习实际需要多长时间来审查某些信息。

有什么建议来执行这项任务吗?

谢谢!

formula ms-project
1个回答
0
投票

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
© www.soinside.com 2019 - 2024. All rights reserved.