筛选后的列表中的值求和 PRJ: 宏

文章翻译 文章翻译
文章编号: 124482 - 查看本文应用于的产品
展开全部 | 关闭全部

本文内容

概要

Microsoft Project 的"详细信息"部分中的示例宏这篇文章对可见的任务和显示的列表中的数值求和在列表的底部任务行中之和。

更多信息

Microsoft 提供的 Visual Basic for Applications 过程的示例图,而无需担保明示或暗示的担保,其中包括,但不是限于对适销性和/或适用性的暗示担保用于特定目的。在这篇文章中的 Visual Basic 过程按原样提供,Microsoft 不保证可以使用它们所有的情况。虽然 Microsoft 支持专业人员可以帮助解释某个宏的功能,他们不会修改这些示例提供附加的功能,也不是它们将帮助您构建宏满足您的特定需求。如果您具有有限的编程体验,您可能需要参考 Microsoft 解决方案供应商之一。解决方案提供程序提供了广泛的收费服务,包括创建自定义的宏。有关 Microsoft 解决方案供应商详细信息调用在 (800) 426-9400 Microsoft 客户的信息服务。

下面的宏对所有可见的数字 1 字段中的值求和任务。在运行该宏后,将创建一个名为"Total"的新任务并显示活动项目的结尾处。在这个数字 1 域任务将包含所有其他可见的数字 1 值的总和任务。

Microsoft 项目 2010年和 2013

  1. 视图功能区中,选择,然后单击查看宏
  2. 输入的名称"SumFilteredList,然后单击创建。
  3. 从第 6 步下到这是在 Visual Basic 编辑器中打开的 Module1 中复制代码。
若要使用此宏,请执行以下操作:

  1. 选择一个使用表时,例如甘特图的任务视图。
  2. 显示您要汇总计算的通过应用筛选器或隐藏或显示子任务的任务。
  3. 视图功能区中,选择,然后单击查看宏
  4. 在宏列表中选择 SumFilteredList,然后单击运行


Microsoft 项目 98、 2000年、 2002年、 2003年和 2007
  1. 在工具菜单上,指向宏,然后单击宏。
  2. 在宏名字段中,键入SumFilteredList。单击创建。
  3. Microsoft 项目 2010 年
  4. 选择视图选项卡,然后单击
  5. 对话框中,类型SumFilteredList 宏名中归档,然后单击创建
  6. 在 Visual Basic 编辑器中,输入以下代码:
          Sub SumFilteredList()
          ' This macro totals up the values in the Number1 field
          ' for all visible (filtered) tasks, and displays this total
          ' at the bottom of the task list.
    
          Dim oTask As Task          ' Current task pointer
          Dim oTotalTask As Task     ' Totals task pointer
          Dim fTotal As Single       ' Used to hold totals
    
             ' Ignore error generated by trying to delete a task
             ' that does not exist.
             On Error Resume Next
             ' If totals task is present, delete it.
             ActiveProject.Tasks("Total:").Delete
             ' Re-enable default error handling
             On Error GoTo 0
    
             ' Select visible tasks
             SelectAll
             ' If tasks are selected, then loop through each of them
             If Not (ActiveSelection.Tasks Is Nothing) Then
                For Each oTask In ActiveSelection.Tasks
                    ' Add Number1 for each task to total
                   fTotal = fTotal + oTask.Number1   ' Field to Sum
                Next oTask
             Else
                ' There's nothing to add
                Exit Sub
             End If
    
              ' Create Totals task so it's visible
             Set oTotalTask = ActiveProject.Tasks.Add("Total:")
    
             ' Insure "Totals:" task is at outline level 1 (not indented)
             Do Until oTotalTask.OutlineLevel = 1
                  oTotalTask.OutlineOutdent
             Loop
    
             ' Put total in proper field
             oTotalTask.Number1 = fTotal             ' Field containing total
    
             ' Hide task bar for this task
             oTotalTask.HideBar = True
             ' Select totals row
             SelectRow oTotalTask.ID, False
             ' Set font to bold
             FontBold Set:=True
    
          End Sub
    						

Microsoft 项目 4.x

  1. 在工具菜单上,单击宏。
  2. 单击新建。
  3. 在宏名字段中,键入 SumFilteredList.单击确定。
  4. 在模块编辑器中,输入以下代码:
          Sub SumFilteredList()
          ' This macro totals up the values in the Number1 field
          ' for all visible (filtered) tasks, and displays this total
          ' at the bottom of the task list.
    
          Dim oTask As Task          ' Current task pointer
          Dim oTotalTask As Task     ' Totals task pointer
          Dim fTotal As Single       ' Used to hold totals
    
             ' Ignore error generated by trying to delete a task
             ' that does not exist.
             On Error Resume Next
             ' If totals task is present, delete it.
             ActiveProject.Tasks("Total:").Delete
             ' Re-enable default error handling
             On Error GoTo 0
    
             ' Select visible tasks
             SelectAll
             ' If tasks are selected, then loop through each of them
             If Not (ActiveSelection.Tasks Is Nothing) Then
                For Each oTask In ActiveSelection.Tasks
                    ' Add Number1 for each task to total
                   fTotal = fTotal + oTask.Number1   ' Field to Sum
                Next oTask
             Else
                ' There's nothing to add
                Exit Sub
             End If
    
              ' Create Totals task so it's visible
             Set oTotalTask = ActiveProject.Tasks.Add("Total:")
    
             ' Insure "Totals:" task is at outline level 1 (not indented)
             Do Until oTotalTask.OutlineLevel = 1
                  oTotalTask.OutlineOutdent
             Loop
    
             ' Put total in proper field
             oTotalTask.Number1 = fTotal             ' Field containing total
    
             ' Hide task bar for this task
             oTotalTask.HideBar = True
             ' Select totals row
             SelectRow oTotalTask.ID, False
             ' Set font to bold
             FontBold Set:=True
    
          End Sub
    						
若要使用此宏,请执行以下操作:

  1. 选择一个使用表时,例如甘特图的任务视图。
  2. 显示您想要通过计算总计的任务应用筛选器或通过隐藏或显示子任务。
  3. 在工具菜单上,单击宏。
  4. 在宏列表中选择 SumFilteredList,然后单击运行。
若要使用此宏,请执行以下操作:

  1. 选择一个使用表时,例如甘特图的任务视图。
  2. 显示您想要通过计算总计的任务应用筛选器或通过隐藏或显示子任务。
  3. 在工具菜单上,指向宏,然后单击宏。
  4. 在宏列表中选择 SumFilteredList,然后单击运行。

修改宏

以数字 1 以外的字段中的值求和,请更换的参考在行上的数字 1"域的总和"与注释的名称您要为其派生总计的字段。若要将总放在一个字段中非数字 1,替换注释掉的行上的数字 1 参考使用"字段包含总"与字段中的名称到您确实想要放置总数。

例如,如果您要计算的字段是计算的字段,如成本或实际成本,则总和必须放在一个非计算的字段,例如,成本 1 或数字 1。因此,若要获取总成本域的所有可见任务和地点的"总计"的任务,成本 1 域中的合计将更改指示的行,如下所示:
   fTotal = fTotal + oTask.Cost   ' Field to Sum
   oTotalTask.Cost1 = fTotal      ' Field containing total
				

属性

文章编号: 124482 - 最后修改: 2013年4月29日 - 修订: 1.0
这篇文章中的信息适用于:
  • Microsoft Project 98 标准版
  • Microsoft Project 4.1 标准版
  • Microsoft Project 4.0 标准版
  • Microsoft Project 4.0 for Macintosh
  • Microsoft Office Project Standard 2007
  • Microsoft Office Project Standard 2003
  • Microsoft Project 2000 标准版
  • Microsoft Project 2002 标准版
  • Microsoft Project Standard 2010
  • Microsoft Office Project Professional 2007
  • Microsoft Office Project Professional 2003
  • Microsoft Office Project Server 2007
  • Microsoft Office Project Server 2003
  • Microsoft Project 2002 专业版
  • Microsoft Project Professional 2010
  • Microsoft Project Server 2002
  • Microsoft Project Server 2010
  • Microsoft Project 2013 Professional
  • Microsoft Project 2013 Standard
关键字:?
kbcode kbhowto kbprogramming kbmt KB124482 KbMtzh
机器翻译
重要说明:本文是由 Microsoft 机器翻译软件进行的翻译并可能由 Microsoft 社区通过社区翻译机构(CTF)技术进行后期编辑,或可能是由人工进行的翻译。Microsoft 同时向您提供机器翻译、人工翻译及社区后期编辑的文章,以便对我们知识库中的所有文章以多种语言提供访问。翻译的文章可能存在词汇、句法和/或语法方面的错误。Microsoft 对由于内容的误译或客户对内容的使用所导致的任何不准确、错误或损失不承担责任。
点击这里察看该文章的英文版: 124482
Microsoft和/或其各供应商对于为任何目的而在本服务器上发布的文件及有关图形所含信息的适用性,不作任何声明。 所有该等文件及有关图形均"依样"提供,而不带任何性质的保证。Microsoft和/或其各供应商特此声明,对所有与该等信息有关的保证和条件不负任何责任,该等保证和条件包括关于适销性、符合特定用途、所有权和非侵权的所有默示保证和条件。在任何情况下,在由于使用或运行本服务器上的信息所引起的或与该等使用或运行有关的诉讼中,Microsoft和/或其各供应商就因丧失使用、数据或利润所导致的任何特别的、间接的、衍生性的损害或任何因使用而丧失所导致的之损害、数据或利润不负任何责任。

提供反馈

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com