如何使用 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
我正在尝试向 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