根据持续时间和缩进删除任务
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
属性 显然是按工作日的分钟数计算的,所以你必须在那里找出适合你的数字。
我的工作生成了相当大的(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
属性 显然是按工作日的分钟数计算的,所以你必须在那里找出适合你的数字。