可以在ms-project中通过vba调用"level all"吗?
Is it possible to call "level all" through vba in ms-project?
我正在使用 Microsoft Project 2010 专业版,我想知道是否可以:
问题
- 使用visual basic调用资源选项卡下的"Level All"函数。
我为什么要那个?
我想这样做是因为我们在项目中使用了各种 "cadence"。因此,同样的一系列任务可能会在 4 天或 10 天内完成。现在,当 "cadence" 发生此类变化时,我们将不得不 increase/decrease 轮班 day/night 的员工人数,并将任务重新分配给白班或夜班。此任务必须手动完成。我显然想要自动化它。
所以我想解决过度分配的任务和 "past deadline" 错误。因此需要获取指标列值。
项目设置
我正在使用 2 个日历:
- "DayShift" 每天从 6:30 上午到 2:30 下午
- "AfterDayBeforeNight" 每天从 2:30 下午到 10:30 下午
分配给两个资源:
代码:
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
我正在使用 Microsoft Project 2010 专业版,我想知道是否可以:
问题
- 使用visual basic调用资源选项卡下的"Level All"函数。
我为什么要那个?
我想这样做是因为我们在项目中使用了各种 "cadence"。因此,同样的一系列任务可能会在 4 天或 10 天内完成。现在,当 "cadence" 发生此类变化时,我们将不得不 increase/decrease 轮班 day/night 的员工人数,并将任务重新分配给白班或夜班。此任务必须手动完成。我显然想要自动化它。
所以我想解决过度分配的任务和 "past deadline" 错误。因此需要获取指标列值。
项目设置
我正在使用 2 个日历:
- "DayShift" 每天从 6:30 上午到 2:30 下午
- "AfterDayBeforeNight" 每天从 2:30 下午到 10:30 下午
分配给两个资源:
代码:
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