如何使用 VBA 向 MS Project 中的前置字段添加延迟

How to add lag to the predecessor field in MS Project using VBA

我正在尝试向 MS Project 中的前置字段添加时间滞后,但当该前置字段已经存在滞后时,我遇到了困难。

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

T.Predecessors + "FS +" & Time_lag & " hrs"

但是,如果已经存在时间滞后,我正在努力研究如何在已经存在与该任务相关的 3 小时滞后时再增加 2 小时滞后。

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

有助于记住 Predecessor 字段显示 Task Dependencies strung together (comma-separated). What you want to do is update that particular dependency, and not the whole collection. The Task Dependency object has several properties including Lag 的集合。

在您的场景中,您有一个具有单一依赖项的任务,并且您希望将延迟增加 2 小时,其中 t 是您的任务,延迟以分钟表示:

t.TaskDependencies(1).Lag = t.TaskDependencies(1).Lag + 60 * 2

在更复杂的场景中,任务将有多个依赖项,您需要找到正确的依赖项。在这种情况下,我们将 link 设置为 2 天的延迟到 UniqueID 为 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