VBA MS Project递归地循环通过outlinechildren

时间:2017-08-11 08:04:51

标签: vba ms-project

我在MPP中有一个多级任务层次结构,我需要为所有任务提取task.name,但不包括层次结构中的摘要任务。

是否有一种优雅而强大的方法可以将Do While循环与所有摘要任务的OutlineChildren属性结合使用,以循环遍历所有级别 递归 的所有任务那层次结构?

谢谢!

编辑:也许Do Until Loop是最好的?

1 个答案:

答案 0 :(得分:0)

这是一个较晚的答复,但我有同样的问题。幸运的是,我能够找到解决方案here

我已经稍微修改了代码,但这是我在自己的项目中使用的代码:

Public Sub GetAllSubtasks(ByRef t As Task)
    Dim subtask As Task
    Debug.Print t.Name
    For Each subtask In t.OutlineChildren
        GetAllSubtasks subtask
    Next subtask
End Sub

希望这会有所帮助!

编辑:此解决方案使用递归而不是Do / While循环。