问题描述
我是 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
解决方法
您可以遍历所有字段 (300+) 并逐条传输信息,但使用 EditCopy 和 EditPaste 是最好的方法。
此示例代码从源项目复制第一个任务并将其粘贴到目标项目。 (可选)对目标项目使用 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 那样全面。