Вы можете попробовать обернуть проверку ошибок вокруг оператора set.Я написал небольшой макрос для непустого файла проекта:
Sub Testing()
On Error GoTo ActiveSelectionErrHandler:
Set oProjTasks = ActiveSelection.Tasks
If oProjTasks Is Nothing Then
MsgBox "No tasks in current project"
End If
ActiveSelectionErrHandler:
Set oProjTasks = ThisProject.Tasks 'or something like that
Resume Next
End Sub
Это устраняет ошибку, но, поскольку Стив уже выразил мнение, требуется больше работы для интеграции кода.
ВыПридется следовать коду, чтобы внести изменения для обработки пустых задач oProjTas, где ожидается, что они будут иметь некоторые значения.В противном случае вы увидите больше ошибок, возможно, когда oProjTasks окажется пустым.
Другим альтернативным решением может быть запуск макроса после выбора проекта, поскольку код, который вы цитировали, будет работать нормально, если что-то выбрано.