X
ďťż

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
  • Drogi uzytkowniku!

    W trosce o komfort korzystania z naszego serwisu chcemy dostarczac Ci coraz lepsze uslugi. By moc to robic prosimy, abys wyrazil zgode na dopasowanie tresci marketingowych do Twoich zachowan w serwisie. Zgoda ta pozwoli nam czesciowo finansowac rozwoj swiadczonych uslug.

    Pamietaj, ze dbamy o Twoja prywatnosc. Nie zwiekszamy zakresu naszych uprawnien bez Twojej zgody. Zadbamy rowniez o bezpieczenstwo Twoich danych. Wyrazona zgode mozesz cofnac w kazdej chwili.

     Tak, zgadzam sie na nadanie mi "cookie" i korzystanie z danych przez Administratora Serwisu i jego partnerow w celu dopasowania tresci do moich potrzeb. Przeczytalem(am) Polityke prywatnosci. Rozumiem ja i akceptuje.

     Tak, zgadzam sie na przetwarzanie moich danych osobowych przez Administratora Serwisu i jego partnerow w celu personalizowania wyswietlanych mi reklam i dostosowania do mnie prezentowanych tresci marketingowych. Przeczytalem(am) Polityke prywatnosci. Rozumiem ja i akceptuje.

    Wyrazenie powyzszych zgod jest dobrowolne i mozesz je w dowolnym momencie wycofac poprzez opcje: "Twoje zgody", dostepnej w prawym, dolnym rogu strony lub poprzez usuniecie "cookies" w swojej przegladarce dla powyzej strony, z tym, ze wycofanie zgody nie bedzie mialo wplywu na zgodnosc z prawem przetwarzania na podstawie zgody, przed jej wycofaniem.