Ошибка в 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
Другие вопросы по тегам