Vba 如何删除MS Project TimeScale数据中的所有值

Vba 如何删除MS Project TimeScale数据中的所有值,vba,ms-project,Vba,Ms Project,我使用BaselineWork1 timescaledata来包含我每周执行的单个任务的资源工时的时间分段计算。我想先将前一周的计算归零,然后再填充本周的计算。除了创建一个循环来将每个任务中每个资源的时间刻度数据写入零之外,还有没有更有效的方法?我是否可以使开始日期和结束日期等于项目的开始日期和结束日期,时间刻度=秒,写入值等于零?例如: For lngCnt1 = 1 To tskCounter.Resources.Count tskCounter.Assignment

我使用BaselineWork1 timescaledata来包含我每周执行的单个任务的资源工时的时间分段计算。我想先将前一周的计算归零,然后再填充本周的计算。除了创建一个循环来将每个任务中每个资源的时间刻度数据写入零之外,还有没有更有效的方法?我是否可以使开始日期和结束日期等于项目的开始日期和结束日期,时间刻度=秒,写入值等于零?例如:

    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工作值不会在分配或任务级别自动更新;这些值需要显式清除