【问题标题】:VBA - MS Project - Assign single task to an Object variable after using "Find"VBA - MS Project - 使用“查找”后将单个任务分配给对象变量
【发布时间】:2021-10-13 12:32:55
【问题描述】:

我需要以编程方式对一些任务进行更改。需要更改的任务在 Text10 字段中有 ID 号。如果可能,我想避免使用过滤器,因为所有这些 ID 号都是不同的。由于项目文件有 10k+ 行,因此遍历所有任务需要的时间太长。我不确定“查找”是否是正确的方法。

问题:

有没有办法使用 Text10 找到任务并将其分配给“任务”对象,以便我可以操作它? 以下内容不起作用,但希望能说明问题:

Sub test()

Dim t As Task

Set t = Find("Text10", "equals", "A1044Fh82")
t.SetField pjTaskDuration, 0


End Sub

谢谢!

【问题讨论】:

    标签: vba ms-project


    【解决方案1】:

    如果找到匹配值,Find 方法返回 True,如果找到,则将活动选择移动到第一个匹配任务。所以检查 Find 方法的结果,然后使用ActiveCell 属性来获取对任务的引用:

    If Application.Find("Text10", "equals", "A1044Fh82") Then
        Dim t As Task
        Set t = Application.ActiveCell.Task
        t.Duration = 0
    End If
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-07-21
      • 2019-03-11
      • 1970-01-01
      • 2015-10-28
      • 1970-01-01
      • 2016-05-16
      • 1970-01-01
      • 2017-01-31
      相关资源
      最近更新 更多