如何使用VBA将滞后添加到MS Project中的前置字段

如何使用VBA将滞后添加到MS Project中的前置字段,vba,ms-project,Vba,Ms Project,我正在尝试向MS Project中的前置字段添加一个时间延迟,当该前置字段已经存在延迟时,我遇到了困难 例如,当它只是我刚才使用的一个前身时: T.Predecessors + "FS +" & Time_lag & " hrs" 然而,如果已经有一个时间延迟,我正在努力解决如何添加,比如说,当已经有一个3小时的延迟与该任务相关时,再添加一个2小时的延迟 我确信有比使用基于文本的方法更好的方法来添加延迟。记住前置字段显示串在一起的集合(逗号分隔)。您要做的是更新特定的依赖项,而

我正在尝试向MS Project中的前置字段添加一个时间延迟,当该前置字段已经存在延迟时,我遇到了困难

例如,当它只是我刚才使用的一个前身时:

T.Predecessors + "FS +" & Time_lag & " hrs"
然而,如果已经有一个时间延迟,我正在努力解决如何添加,比如说,当已经有一个3小时的延迟与该任务相关时,再添加一个2小时的延迟


我确信有比使用基于文本的方法更好的方法来添加延迟。

记住前置字段显示串在一起的集合(逗号分隔)。您要做的是更新特定的依赖项,而不是整个集合。该对象具有多个属性,包括

在您的场景中,您有一个具有单个依赖项的任务,您希望在滞后时间上增加2小时,其中
t
是您的任务,滞后时间以分钟表示:

t.TaskDependencies(1).Lag = t.TaskDependencies(1).Lag + 60 * 2
在更复杂的场景中,任务将具有多个依赖项,您需要找到正确的依赖项。在本例中,我们为链接到UniqueID为2的前一个任务设置了2天的延迟:

Dim td As TaskDependency
For Each td In t.TaskDependencies
    If td.From.UniqueID = 2 Then
        td.Lag = 60 * 8 * 2
    End If
Next td

请记住,前置字段显示的是串在一起(逗号分隔)的集合。您要做的是更新特定的依赖项,而不是整个集合。该对象具有多个属性,包括

在您的场景中,您有一个具有单个依赖项的任务,您希望在滞后时间上增加2小时,其中
t
是您的任务,滞后时间以分钟表示:

t.TaskDependencies(1).Lag = t.TaskDependencies(1).Lag + 60 * 2
在更复杂的场景中,任务将具有多个依赖项,您需要找到正确的依赖项。在本例中,我们为链接到UniqueID为2的前一个任务设置了2天的延迟:

Dim td As TaskDependency
For Each td In t.TaskDependencies
    If td.From.UniqueID = 2 Then
        td.Lag = 60 * 8 * 2
    End If
Next td