我正在使用VBA根据举行会话的位置,房间的容量和房间的可用性,将资源(房间)分配给MS Project中的任务。我被困在房间可用性部分。我认为必须有某种方法可以挂钩Resource对象的可用性属性,以便快速确定Resource是否已应用于另一个任务。
欢呼
paths
答案 0 :(得分:0)
使用Resource对象的TimeScaleData方法返回一个TimeScaleValues对象,该对象可用于确定给定时间段内已分配给该资源的工作量(例如,任务)。例如:
Dim tsvs As TimeScaleValues
Set tsvs = R.TimeScaleData(T.Start, T.Finish, pjResourceTimescaledWork, pjTimescaleYears)
If tsvs(1).Value = 0 Then
T.ResourceNames = R.Name
' exit loop now that room is assigned
End If
请注意,此处使用的单位为pjTimescaleYears
,以便在任务期间将资源的全部工作汇总为一个值(除非任务跨度超过一年)。如果您使用默认的pjTimescaleDays
并且任务跨度超过一天,则tsvs
将有多个元素需要检查。