阅读和编写MS项目的资源和任务时间表数据



我正在将预计成本拉入Excel报告和外部数据库。月度预测的一部分是更新项目管理费用。因此,我需要准确地提取每月成本,并将每月成本写入管理费用任务。

我很难理解为什么你要读和写一个分配,而不是直接到成本资源?

按资源(简化)读取月成本:

Dim tsvs as TimeScaleValues
Dim res as Resource
Do Until budgetDate > ActiveProject.ProjectFinish
    For Each res In ActiveProject.Resources
        Set tsvs = res.TimeScaleData(StartDate:=budgetDate, EndDate:=budgetDate, Type:=pjResourceTimescaledCost, TimeScaleUnit:=pjTimescaleMonths, Count:=1)
        myMonthCost = Val(tsvs(1).Value)
    Next res
    budgetDate = DateAdd("m", budgetDate, 1)
Loop

在tsvs(单个月)中只有一个TimeScaleValue,所以我相信我只引用tsvs(1)就可以了。值,而不必在集合中自增。

读取月成本与分配:

Do Until budgetDate > laborFinishDate
    For Each res In ActiveProject.Resources
        Set asgts = res.Assignments
        For Each asgt In asgts
            Set tsvs = asgt.TimeScaleData(StartDate:=budgetDate, EndDate:=budgetDate, Type:=pjAssignmentTimescaledCost, TimeScaleUnit:=pjTimescaleMonths, Count:=1)
            myMonthCost = myMonthCost + Val(tsvs(1).Value)
        Next asgt
    Next res
    budgetDate = DateAdd("m", budgetDate, 1)
Loop

最后将月开销成本写入开销任务:

myOverhead = myMonthCost * myRate
Set tsk = ActiveProject.Tasks("Overhead")
Set tsvs = tsk.Assignments(1).TimeScaleData(StartDate:=budgetDate, EndDate:=budgetDate, Type:=pjAssignmentTimescaledCost, TimeScaleUnit:=pjTimescaleMonths)
tsvs(1).Value = myOverhead

这个方法对我有效,但我很沮丧,我不能让它直接写入资源成本。我真的不明白为什么我必须读或写一个分配(任务或资源),而不是直接到资源本身。谁能解释一下为什么应该使用分配来读取和写入成本,或者是否有更好的方法直接使用资源?

感谢您的宝贵时间。

答案是分配表包含将资源与任务关联起来的TimeScaleData(反之亦然),因此您必须写入与资源(或任务)相关的分配。资源TimeScaleData实际上是资源的相关赋值TimeScaleData

最新更新