MS Project Runtime Ошибка 91 - Объект задачи - PullRequest
0 голосов
/ 27 апреля 2020

Я скопировал некоторый код VBA с docs.microsoft.com, чтобы лучше понять, как работает объект сводной задачи в проекте MS. Однако я получаю ошибки времени выполнения 91 для исходного кода, см. Ниже:

Sub CheckAssignmentsOnSummaryTasks()
 Dim tsk As Task
 Dim message As String
 Dim numAssignments As Integer
 Dim numSummaryTasksWithAssignments As Integer
 Dim msgStyle As VbMsgBoxStyle

 message = ""
 numSummaryTasksWithAssignments = 0

 For Each tsk In ActiveProject.Tasks
 If tsk.Summary Then
 numAssignments = tsk.Assignments.Count
 If numAssignments > 0 Then
 message = message & "Summary task ID (" & tsk.ID & "): " & tsk.Name _
 & ": " & numAssignments & " assignments" & vbCrLf
 numSummaryTasksWithAssignments = numSummaryTasksWithAssignments + 1
 End If
 End If
 Next tsk

 If numSummaryTasksWithAssignments > 0 Then
 message = "There are " & numSummaryTasksWithAssignments _
 & " summary tasks that have assignments." & vbCrLf & vbCrLf & message
 msgStyle = vbExclamation
 Else
 message = "No summary tasks have assignments."
 msgStyle = vbInformation
 End If

 MsgBox message, msgStyle, "Summary Task Check"
End Sub

Ошибка времени выполнения 91 определяет эту строку:

If tsk.Summary Then".

После поиска возможных причин я установил / переустановил MS project.

Любая помощь по поводу того, что может быть причиной этого, будет принята с благодарностью, поскольку я заметил ту же ошибку в другом сценарии VBA docs.microsoft.com.

Заранее спасибо.

1 Ответ

2 голосов
/ 27 апреля 2020

Проверьте tsk на отсутствие Nothing, например:

 For Each tsk In ActiveProject.Tasks
     If Not tsk is Nothing Then
          If tsk.Summary Then
...