【发布时间】:2020-07-01 07:25:15
【问题描述】:
我将预计成本提取到 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).Value 而不必通过集合递增。
通过作业读取月成本:
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
这种方法对我有用,但我很沮丧,我无法让它直接写入资源成本。我真的不明白为什么我必须读取或写入作业(任务或资源)而不是直接写入资源本身。谁能解释为什么要使用作业来读写成本,或者是否有更好的方法直接使用资源?
感谢您的宝贵时间。
【问题讨论】:
标签: vba ms-project