【发布时间】:2016-10-01 12:15:01
【问题描述】:
目前我有一些创建新任务的代码,但它确实存在错误且不一致。
Public Sub Create_milestones()
proj = Globals.ThisAddIn.Application.ActiveProject
Dim myTask As MSProject.Task
Application.ScreenUpdating = False
For Each myTask In Application.ActiveSelection.Tasks
Application.SelectTaskField(Row:=1, Column:="Name")
Application.InsertTask()
Application.SetTaskField(Field:="Duration", Value:="0")
Application.SetTaskField(Field:="Start", Value:=myTask.Finish)
Application.SetTaskField(Field:="Name", Value:=myTask.Name & " - Milestone")
Application.SetTaskField(Field:="Resource Names", Value:=myTask.ResourceNames)
Application.SetTaskField(Field:="Text3", Value:="Milestone")
Application.GanttBarFormat(GanttStyle:=3, StartShape:=13, StartType:=0, StartColor:=255, MiddleShape:=0, MiddlePattern:=0, MiddleColor:=255, EndShape:=0, EndColor:=255, EndType:=0)
Application.SelectTaskField(Row:=1, Column:="Name")
Next
Application.SelectTaskField(Row:=-1, Column:="Name")
Application.SelectRow(Row:=0)
Application.RowDelete()
Application.ScreenUpdating = True
MsgBox("Done")
End Sub
循环遍历选定任务并创建太多任务时似乎走得太远了,我通过返回并删除额外任务来解决这个问题,但这对我来说似乎不是最好的解决方案。
我意识到这段代码在 VB.net 中,但我也可以使用 VBA。
有没有更好的方法来为新任务创建和分配价值?
【问题讨论】:
标签: vb.net vba ms-project