Microsoft Project - 任务和资源之间共享自定义列吗?

Microsoft Project - 任务和资源之间共享自定义列吗?

背景

因此,我在 Microsoft Project 中创建了一个项目。我已创建所有任务并分配了资源。我想要做的是添加一个列来捕获任务发生的位置。似乎没有标有地点或任何类似的东西。

我尝试过

因此,我想添加一个标签为地点。我希望它能够在任务和资源之间共享。

我添加了列作为文本2从选项中,然后给它一个标题地点

在此处输入图片描述

在资源使用情况下我选择文本2从我的专栏选择但没有任何内容填充:

在此处输入图片描述

我是否遗漏了什么?

也许实现此目的的另一种方法是,如果我的资源列表包含地点(位置)。如果我这样做,是否有办法添加与位置相关的内容,例如地址、电话号码等?

答案1

资源使用情况视图中显示的任务信息实际上是任务信息。

显示的 Text2 字段来自作业。让事情变得更加复杂的是,在分配级别有两组“自定义”字段——一组用于任务,一组用于资源。

使用宏,您可以将任务级数据复制到分配级数据。

Sub UpdateAssignmentInfo()

    Dim asn As Assignment

    ' transfer data to show in the Resource Usage view
    Dim res As Resource
    For Each res In ActiveProject.Resources
        For Each asn In res.Assignments
            asn.Text2 = asn.Task.Text2
        Next asn
    Next res

    ' transfer data to show in the Task Usage view
    Dim tsk As Task
    For Each tsk In ActiveProject.Tasks
        For Each asn In tsk.Assignments
            ' use only ONE of the following:
            ' to show the task's value use
            asn.Text2 = tsk.Text2
            ' to show the resource's value use
            asn.Text2 = asn.Resource.Text2
        Next asn
    Next tsk

End Sub

第一圈在此代码中将任务级数据复制到分配的资源字段(例如,您在资源使用情况视图中看到的字段)。

第二循环将数据复制到任务分配的任务字段(例如任务使用情况视图中显示的字段)。根据需要,选择其中一行asn.Text2 = ...并删除/注释掉另一行。第一个会复制任务信息,而第二个会显示来自资源本身的 Text2 数据(例如来自资源表视图)。

答案2

所以我发现,分配给任务的字段与分配给资源的字段不同,即使它们具有相同的名称。例如,资源的 Text2 不等于任务的 Text2。

因此,在两个集合之间进行复制的唯一方法是使用 VBA。如下所示:

Public Sub copy_task_location_to_resource_location()


  For r = 1 To ActiveProject.Resources.Count
    'iterate through resources
    ActiveProject.Resources(r).Text1 = ""
    ActiveProject.Resources(r).Text2 = ""
    ActiveProject.Resources(r).Text3 = ""
    ActiveProject.Resources(r).Text4 = ""

        For a = 1 To ActiveProject.Resources(r).Assignments.Count
          'iterate through assignments
          'match up with correct task
          For t = 1 To ActiveProject.Tasks.Count
            If ActiveProject.Tasks(t) = ActiveProject.Resources(r).Assignments(a).Task Then
               'copy fields over
               ActiveProject.Resources(r).Assignments(a).Text3 = ActiveProject.Tasks(t).Text2
               ActiveProject.Resources(r).Assignments(a).Text2 = Month(ActiveProject.Tasks(t).Start) & "/" & Day(ActiveProject.Tasks(t).Start)
               ActiveProject.Resources(r).Assignments(a).Text1 = Format(ActiveProject.Tasks(t).Start, "H:mm am/pm")
               ActiveProject.Resources(r).Assignments(a).Text4 = Format(ActiveProject.Tasks(t).Finish, "H:mm am/pm")
               ActiveProject.Resources(r).Assignments(a).Notes = ActiveProject.Tasks(t).Notes
               Exit For
            End If
          Next

       Next

  Next


End Sub

我循环遍历可用的资源,然后遍历这些资源的分配,然后找到分配的任务。一旦我找到该链接,我就可以复制我想要的任何数据。以上只是示例。

结果

结果是我可以输入我的任务,并分配任务资源、日期、注释和位置:

在此处输入图片描述

输入后,我现在可以通过两种方式查看结果。我可以按人查看每个人需要做什么:

在此处输入图片描述

时间和日期格式非常容易阅读,而且条理清晰

我也可以通过任务进行类似的查看:

在此处输入图片描述

这使得项目规划器看上去非常漂亮,并且易于修改。

相关内容