ďťż

Mefisto...diabeł czy anioł?

Witam.

Mam następujący problem:

Posiadam makro, które otwiera pliki ms projecta i zaciąga z nich zadania wraz z czasem trwania itd (określone kolumny z projecta) i wkleja do excela. Problem polega na tym, że przy otwieraniu niektórych plików ms projecta pojawia się błąd:

Run-Time Error '91':
Object variable or With block variable not set.

Poniżej kod, oraz miejsce w którym wyskakuje błąd:

Private Sub update()

Dim i, n, max, b As Integer
Dim Proj As MSProject.Application
Dim ts As MSProject.Tasks
Dim t As MSProject.Task

Worksheets("Czynności Projektowe").Activate
Start = Cells(1, 2).Value
Koniec = Cells(2, 2).Value
i = 10000
max = Worksheets("Ustawienia").Cells(1, 14)

'--------------- projects
For n = 4 To max + 3
Set Proj = CreateObject("MSProject.Application")
Proj.Visible = False
Proj.FileOpen Name:=Worksheets("Ustawienia").Cells(n, 15), ReadOnly:=True

Set ts = ActiveProject.Tasks

'--------------- menu

Application.ScreenUpdating = False

Worksheets("Czynności Projektowe").Cells(i, 1) = "Project: " & Worksheets("Ustawienia").Cells(n, 14)
Worksheets("Czynności Projektowe").Cells(i, 1).Select
ActiveCell.Hyperlinks.Add ActiveCell, Worksheets("Ustawienia").Cells(n, 15)
Worksheets("Czynności Projektowe").Cells(i, 2) = "#outline"
Worksheets("Czynności Projektowe").Cells(i, 3) = "nazwa projektu"
Worksheets("Czynności Projektowe").Cells(i, 4) = "name"
Worksheets("Czynności Projektowe").Cells(i, 5) = "resources"
Worksheets("Czynności Projektowe").Cells(i, 6) = "start date"
Worksheets("Czynności Projektowe").Cells(i, 7) = "finish date"
Worksheets("Czynności Projektowe").Cells(i, 8) = "% Complete"

i = i + 1

'--------------- tasks
For Each t In ts
'If Not t.Summary Then
' MsgBox t.Start
'MsgBox Koniec
'If t.Finish = Start Or t.Start = Koniec Then
If Not (t.Finish < Start Or t.Start > Koniec) Then 'TU WYSKAKUJE BŁĄD
'If t.Start > Koniec Then

Worksheets("Czynności Projektowe").Cells(i, 3) = Worksheets("Ustawienia").Cells(n, 14)
Worksheets("Czynności Projektowe").Cells(i, 4) = t.Name
Worksheets("Czynności Projektowe").Cells(i, 5) = t.ResourceNames
Worksheets("Czynności Projektowe").Cells(i, 6) = t.Start
Worksheets("Czynności Projektowe").Cells(i, 7) = t.Finish
Worksheets("Czynności Projektowe").Cells(i, 8) = t.PercentComplete

i = i + 1
End If
' End If
Next t

Proj.FileClose pjDoNotSave

Next n

Range("A1").Select
End Sub

Pliki, które się otwierają i zgrywają poprawnie oraz te, które generują błąd są stworzone w takich samych wersjach, posiadają tak samo nazwane kolumny, jeśli chodzi o budowę są identyczne.

Próbowałem deklarować zmienne obiektowe t.Finish itd ale bez powodzenia.

Z góry dzięki za pomoc.
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • katkaras.opx.pl