根据持续时间和缩进删除任务

Delete tasks based on duration and indention

我的工作生成了相当大的(2k+ 任务)MS 项目文件,但是,很多任务是 "dummy tasks" 并且不需要,我和其他人需要删除它们。我们删除 "bottom level" 的任务,这意味着它们没有子任务,并且具有特定的长度,比如说 1000 天。

所以我正在寻找一个宏,如果可能的话,循环遍历任务,并删除所有没有子任务且持续时间为 1000 天的任务。

我没有使用 MS 项目的经验,使用 VBA 和一般编程的经验非常有限。我用谷歌搜索了一下,但没有取得任何进展。

提前致谢。奥斯卡

我目前得到的代码:

Sub DeleteMsProjectTask()
Dim proj As Project
Dim t As Task
Set proj = ActiveProject

Do While proj.Tasks.Count > 0
    For Each t In proj.Tasks
        If Not (t.Summary) Then
            t.Delete
        End If
    Next t
Loop
End Sub

我认为您需要在 if 语句中添加一些元素。

使用 If t.OutlineChildren.count = 0 and t.Duration > 480000

Duration 属性 显然是按工作日的分钟数计算的,所以你必须在那里找出适合你的数字。