首页 > 解决方案 > 将任务从一个项目复制到另一个项目

问题描述

我是 MS Projects 中的 VBA 新手,所以我有一个非常简单的问题。我想从 Project1 复制一个任务并在 Project2 中创建一个包含所有字段信息的新任务。

我只能弄清楚如何一次复制一个字段(例如“名称”),但是如何复制所有字段?

Sub CopyTask()

Dim source As Project
Dim destination As Project

Set source = Application.Projects("Project1")
Set destination = Application.Projects("Project2")

destination.Tasks.Add.Name = source.Tasks(1).Name
    
End Sub

标签: vbacopy-pastems-project

解决方案


您可以遍历所有字段 (300+) 并逐段传输信息,但使用EditCopyEditPaste是最好的方法。

此示例代码从源项目复制第一个任务并将其粘贴到目标项目。可以选择在目标项目上使用SelectRow方法来控制粘贴的位置。

Sub CopyTask()

    Dim source As Project
    Dim destination As Project

    Set source = Application.Projects("Project1")
    Set destination = Application.Projects("Project2")

    source.Activate
    SelectRow Row:=1, RowRelative:=False
    EditCopy

    destination.Activate
    EditPaste

End Sub

注意:有人可能认为会有一种“更干净”的方式来做到这一点,但 Project API 并不像 Excel API 那样全面。


推荐阅读