使用MS Project 2007的VBA时出现问题。我有一个任务Task
,其中包含资源Foo
(工作2天)和Bar
(5天工作)。 Task
设置为固定作业。现在,当手动添加或从任务中删除任务时,所有工作都按预期工作,没有什么奇怪的事情发生。当使用VBA时,如下所示,其他作业的工作值会改变。执行脚本通过VBA添加新项目时MS项目更改分配的工作值
Task:
Foo 16h
Bar 40h
后:
Task:
Foo 9,33h
Bar 23,33h
Baz 80h
因此,实际的问题,我有什么,为了做到不同,以
' Adding an Assignment with the "Baz" Resource and 10d of work
Sub AddAssignment()
Dim tskTask As Task
Dim rsResource As Resource
Dim asAssignment As Assignment
Set tskTask = ActiveProject.Tasks(1)
Set rsResource = ActiveProject.Resources("Baz")
Set asAssignment = tskTask.Assignments.Add(tskTask.ID, rsResource.ID)
asAssignment.Work = "10d"
End Sub
执行脚本前保持其他作业的工作价值?
啊,我明白了!尝试了你的方式,并偶然发现一个小问题。当添加一个新的Assignment时,'tskTask.Assignments'的索引可能会改变,所以实际的Assignment与之前没有相同的索引位置。我没有进一步调查,但现在正在使用Dictionary,它肯定会将正确的资源映射到正确的工作量并进行设置。很好的答案,非常感谢,谢谢瑞秋! – tbuehlmann
哦,和FYI,[this](http://pastie.org/3004565)是我现在的工作代码。 – tbuehlmann
我想知道资源的顺序......感谢您分享您的解决方案。 –