如何通过代码获取MS Project中资源分配的Resume日期?
获取MS Project资源分配的Resume日期(无需视图选中)
可以直接通过代码实现,不用依赖任务使用视图的选中操作。MS Project的Assignment对象虽然没有暴露直接的Resume属性,但可以通过**FieldGet方法**访问内置的分配级Resume日期字段。
实现方法(VBA示例)
Sub GetAssignmentResumeDates() Dim proj As Project Dim tsk As Task Dim assn As Assignment Set proj = ActiveProject ' 遍历目标任务(这里以第一个任务为例,可替换为你的指定任务) Set tsk = proj.Tasks(1) If Not tsk Is Nothing And tsk.Assignments.Count > 0 Then For Each assn In tsk.Assignments ' 使用pjAssignmentResume常量获取分配的Resume日期 Dim resumeDate As Variant resumeDate = assn.FieldGet(pjAssignmentResume) If IsDate(resumeDate) Then Debug.Print "资源: " & assn.ResourceName & " | 分配Resume日期: " & Format(resumeDate, "yyyy-mm-dd") Else Debug.Print "资源: " & assn.ResourceName & " | 无Resume日期" End If Next assn End If End Sub
关键说明
pjAssignmentResume是MS Project对象库中的内置常量,对应分配级的Resume日期字段,无需手动记忆字段ID。- 如果你用C#/VB.NET等语言调用MS Project COM对象,同样可以通过
FieldGet方法传入对应的字段枚举值(或直接使用字段ID:188743754)获取该值。 - 若返回值不为日期类型,说明该资源分配未设置Resume日期,需做空值处理。
内容的提问来源于stack exchange,提问作者Kenny Arnold
相关产品推荐
相关产品推荐

