Ошибка в VBA в MSProject, как проверить, загружен ли суб-проект в мастер-проект?
Если я ставлю часы на tmp
переменная и остановка на линии If Not tmp Then
оба проявляются как правда, т.е. tmp
верно и Not tmp
правда.
Dim subProj As Subproject
For Each subProj In prj.Subprojects
Dim tmp As Boolean
tmp = subProj.IsLoaded
If Not tmp Then
ExportTaskToExcel subProj.SourceProject, StartDate, EndDate
End If
Next
Что я должен сделать, чтобы проверить, не загружен ли (не расширен) ли подпроект в основной проект?
Посмотрите на изображение по этой ссылке, которая показывает, что в то же время: True = не True
1 ответ
Существует вероятность того, что tmp объявлен где-то еще, что можно увидеть здесь, вызывая эту проблему (то есть он объявлен как public в другом модуле). Попробуйте изменить имя, чтобы изолировать его, также, я никогда раньше не объявлял переменную в цикле, хотя я не уверен в последствиях, я бы не рекомендовал это.
Dim subProj As Subproject
Dim tmp10 As Boolean
For Each subProj In prj.Subprojects
tmp10 = subProj.IsLoaded
If Not tmp10 Then
ExportTaskToExcel subProj.SourceProject, StartDate, EndDate
End If
Next
Возможно, вы сделали это по определенной причине, но вы могли бы вообще пропустить переменную:
Dim subProj As Subproject
For Each subProj In prj.Subprojects
If Not subProj.IsLoaded Then
ExportTaskToExcel subProj.SourceProject, StartDate, EndDate
End If
Next