Ich versuche, ein Excel 2016 VBA-Makro zu schreiben, das die Daten aus einem Microsoft Project 2013 Summary Project lesen wird (Es ist ein Projekt, das alle meine aktiven Projekte enthält) fassen Sie die Daten in einem Übersichtsblatt in Excel zusammen. HierMS Project 2013 Aufgaben können nicht in Excel 2016 VBA gelesen werden
ist der Code Ich habe bisher:
Sub ExtractFromMsProject(ProjectPath As String)
Dim ProjectApp As MSProject.Application
Dim EachProject As MSProject.Project
Dim ProjectFile As MSProject.Project
Dim SubProjectFile As MSProject.SubProject
Dim SubProjectIndex As Long
On Error Resume Next
Set ProjectApp = GetObject(, "MSProject.Application")
If ProjectApp Is Nothing Then
Set ProjectApp = New MSProject.Application
End If
ProjectApp.DisplayAlerts = False
For Each EachProject In ProjectApp.Projects
If ProjectPath = EachProject.FullPath Then
Set ProjectFile = EachProject
Exit For
End If
Next
If ProjectFile Is Nothing Then
If ProjectApp.FileOpenEx(Name:=ProjectPath, ReadOnly:=True) Then
Set ProjectFile = ProjectApp.ActiveProject
Else
MsgBox "Unable to open the source project file '" & ProjectPath & "'."
Exit Sub
End If
End If
ProjectApp.Visible = True
For Each SubProjectFile In ProjectFile.Subprojects
Next
' For SubProjectIndex = 0 To ProjectFile.Subprojects.Count - 1
' Set SubProject = ProjectFile.Subprojects(SubProjectIndex)
' Next
ProjectApp.FileCloseEx pjDoNotSave
ProjectApp.Quit
End Sub
Es funktioniert großartig, bis ich zu bekommen:
For SubProjectIndex = 0 To ProjectFile.Subprojects.Count - 1
Zu dieser Linie, erhalte ich eine Fehlermeldung:
"Automatisierungsfehler. Bibliothek nicht registriert"
Ich habe versucht, einige Google-Suche zu tun, aber alles, was ich gefunden habe, ist für eine ältere Version von Office/Project.
Jede Hilfe würde sehr geschätzt werden.
Sie haben SubProject als Task-Objekt und nicht als SubProject-Objekt deklariert. SubProject ist ein Schlüsselwort. Wählen Sie ein Nicht-Schlüsselwort für Ihre Variablennamen. Probieren Sie 'Für jeden SubProj in ProjectFile.SubProjects' aus. –
Ich habe die Deklaration von SubProject von einem Task-Objekt zu einem SubProject-Objekt korrigiert und den Variablennamen von SubProject zu SubProjectFile für Ihren Vorschlag aktualisiert und bekomme immer noch denselben Fehler. Irgendwelche anderen Ideen? – Kyle
Werfen Sie einen Blick auf diese Seite, es scheint relevant zu sein: [Entfernen von veralteten Referenzen zum Projekt ...] (http://kb.palisade.com/index.php?pg=kb.page&id=1418) –