【问题标题】:VBA MS Project Loop through outlinechildren recursivelyVBA MS Project循环遍历outlinechildren
【发布时间】:2019-12-20 03:02:34
【问题描述】:

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

有没有一种优雅而健壮的方法来使用 Do While 循环与所有摘要任务的 OutlineChildren 属性相结合,以递归在所有级别上循环所有任务那个等级?

谢谢!

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

【问题讨论】:

  • 优雅的做/虽然我不这么认为,但可能有递归函数!
  • 到目前为止你尝试过什么?分享你的代码attmept
  • 我还没有代码尝试...目前我正在尝试编写一个不基于 do until 循环的递归代码。
  • 递归通常用于将值聚合到摘要级别(例如,摘要任务字段值是基础数字字段的总和)。你需要什么输出?如果您只需要没有摘要任务的任务名称列表,只需遍历任务,跳过带有 task.Summary = True 的任务。

标签: vba ms-project


【解决方案1】:

这是一个迟到的回应,但我有同样的问题。幸运的是,我找到了解决方案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 循环。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-10-19
    • 2014-04-13
    • 2016-07-16
    • 2022-01-22
    • 1970-01-01
    • 1970-01-01
    • 2017-04-26
    • 2013-11-30
    相关资源
    最近更新 更多