Как вы можете прочитать из приведенных ниже кодов VBA для Project2013, цикл «for» занимает около 50-80 секунд, когда число задач достигает более 1000. Как я могу улучшить производительность? Есть ли метод «массива», например, excel VBA? Спасибо за вашу помощь!Как я могу улучшить производительность петли при использовании макроса проекта?
Sub Change_Color_By_Task_Status()
' Expand all sub tasks
SelectSheet
OutlineShowAllTasks
SelectTaskField Row:=1, Column:="Name"
' Clear all fields color
SelectSheet
FontEx CellColor:=16
SelectTaskField Row:=1, Column:="Name", RowRelative:=False
Dim tskt As Task
For Each tskt In ActiveProject.Tasks
If Len(tskt.Name) > 0 Then
If Not tskt Is Nothing Then
If Not tskt.ExternalTask Then
If Not tskt.Summary Then
Select Case tskt.Text1
Case "Complete"
SelectRow Row:=tskt.ID, RowRelative:=False
'Font Color:=pjBlack
FontEx CellColor:=pjGray
Case "Yellow"
SelectRow Row:=tskt.ID, RowRelative:=False
'Font Color:=pjBlack
FontEx CellColor:=pjYellow
Case "Green"
SelectRow Row:=tskt.ID, RowRelative:=False
'Font Color:=pjBlack
FontEx CellColor:=pjWhite
Case "Red"
SelectRow Row:=tskt.ID, RowRelative:=False
'Font Color:=pjRed
FontEx CellColor:=pjRed
Case "Overdue"
SelectRow Row:=tskt.ID, RowRelative:=False
Font Color:=pjWhite
Font32Ex CellColor:=192
End Select
End If
End If
End If
End If
Next tskt
End Sub
Спасибо KainC, пожалуйста, дайте мне бы более подробные инструкции о том, как сделать это? Я начинающий Project vba, поэтому я не могу вас хорошо поймать. –
Я добавил схему того, как это будет выглядеть: – kainC
KainC, где я должен поместить коды orignal, пожалуйста? после фильтров из резюме и внешних? –