是否有可能在ms-project中通过vba调用“level all”?

问题描述:

我使用Microsoft Project 2010专业,我想知道是否有可能:

问题是否有可能在ms-project中通过vba调用“level all”?

  1. 使用Visual Basic调用资源标签下的“级别全部”功能。

为什么我要那样?

我想这样做是因为我们在我们的项目中使用了各种“节奏”。因此,相同的任务可以在4天或10天内完成。现在,当“节奏”发生这种变化时,我们将不得不增加/减少从事白天/夜班工作的员工数量,并将任务重新分配到白天或夜班。这个任务必须手动完成。我显然希望自动化它。

所以我想解决过时的任务和“过去的截止日期”的错误。因此需要获取指标列值。

项目设置

我使用2个日历:

    从6:30 AM
  • “DayShift” 每天下午2:30
  • 从2:30 PM
  • “AfterDayBeforeNight” 天天至10:30 PM

分配到两个资源: enter image description here

代码:

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

+0

这正是我一直在寻找!我会编辑我的问题,以便将答案标记为“答案”,我会问问第一个问题。 – TinkeringMatt