可以在ms-project中通过vba调用"level all"吗?

Is it possible to call "level all" through vba in ms-project?

我正在使用 Microsoft Project 2010 专业版,我想知道是否可以:

问题

  1. 使用visual basic调用资源选项卡下的"Level All"函数。

我为什么要那个?

我想这样做是因为我们在项目中使用了各种 "cadence"。因此,同样的一系列任务可能会在 4 天或 10 天内完成。现在,当 "cadence" 发生此类变化时,我们将不得不 increase/decrease 轮班 day/night 的员工人数,并将任务重新分配给白班或夜班。此任务必须手动完成。我显然想要自动化它。

所以我想解决过度分配的任务和 "past deadline" 错误。因此需要获取指标列值。

项目设置

我正在使用 2 个日历:

分配给两个资源:

代码:

Dim t As Task       
For Each t In Application.ActiveProject.Tasks
Dim success As Boolean
Dim r As Resource    
success = Application.SelectRow(t.ID, False)    
If success Then
Dim posAJ As Integer
Dim posAS As Integer        
posAJ = InStr(t.ResourceNames, "A-J")
posAS = InStr(t.ResourceNames, "A-S")
If posAJ <> 0 Then
Font32Ex CellColor:=62207
End If
If posAS <> 0 Then
Font32Ex CellColor:=32207
End If
Dim warn As String
warn = t.Warning
End If
Next

感谢您的宝贵时间。

对于 Q2:您可以从 VBA

拨打电话
LevelNow All:=True

https://msdn.microsoft.com/en-us/library/office/aa195121(v=office.11).aspx