Vba 如何删除MS Project TimeScale数据中的所有值
我使用BaselineWork1 timescaledata来包含我每周执行的单个任务的资源工时的时间分段计算。我想先将前一周的计算归零,然后再填充本周的计算。除了创建一个循环来将每个任务中每个资源的时间刻度数据写入零之外,还有没有更有效的方法?我是否可以使开始日期和结束日期等于项目的开始日期和结束日期,时间刻度=秒,写入值等于零?例如:Vba 如何删除MS Project TimeScale数据中的所有值,vba,ms-project,Vba,Ms Project,我使用BaselineWork1 timescaledata来包含我每周执行的单个任务的资源工时的时间分段计算。我想先将前一周的计算归零,然后再填充本周的计算。除了创建一个循环来将每个任务中每个资源的时间刻度数据写入零之外,还有没有更有效的方法?我是否可以使开始日期和结束日期等于项目的开始日期和结束日期,时间刻度=秒,写入值等于零?例如: For lngCnt1 = 1 To tskCounter.Resources.Count tskCounter.Assignment
For lngCnt1 = 1 To tskCounter.Resources.Count
tskCounter.Assignments.Item(lngCnt1).TimeScaleData(StartDate:=ActiveProject.ProjectStart, EndDate:=ActiveProject.ProjectFinish, _
Type:=pjAssignmentTimescaledBaseline1Work, _
timescalunit:=pjTimescaleMinutes, Count:=1).Item(1).Value = 0
Next lngCnt1
这似乎不起作用,因为它只会将与项目开始日期对应的日期的基线1工作字段置零。要从预测工作字段以外的任何字段中清除按时间缩放的工作,您确实需要循环检查每个任务上的每个分配。但是,当涉及到单个时间刻度值时,您可以按年份将这些值组合在一起,以减少所需的迭代次数
Sub ClearBaseline1Work()
Dim projStart As Date
Dim projEnd As Date
projStart = ActiveProject.ProjectStart
projEnd = ActiveProject.ProjectFinish
Dim tsk As Task
For Each tsk In ActiveProject.Tasks
Dim asn As Assignment
For Each asn In tsk.Assignments
Dim TSValues As TimeScaleValues
Set TSValues = asn.TimeScaleData(projStart, projEnd, pjAssignmentTimescaledBaseline1Work, pjTimescaleYears)
Dim tsv As TimeScaleValue
For Each tsv In TSValues
tsv.Clear
Next tsv
asn.Baseline1Work = 0
Next asn
tsk.Baseline1Work = 0
Next tsk
End Sub
请记住,基线1工作值不会在分配或任务级别自动更新;这些值需要显式清除