首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法将MS Project 2013任务读入Excel 2016 VBA

无法将MS Project 2013任务读入Excel 2016 VBA
EN

Stack Overflow用户
提问于 2016-04-22 18:53:20
回答 1查看 1.1K关注 0票数 0

我正在尝试编写一个Excel2016VBA宏,该宏将从Microsoft 2013汇总项目(它是一个包含所有活动项目的项目)中读取数据,并将数据汇总到Excel中的摘要表中。

下面是我到目前为止掌握的代码:

代码语言:javascript
复制
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

在我达到以下目的之前,它是很好的:

代码语言:javascript
复制
For SubProjectIndex = 0 To ProjectFile.Subprojects.Count - 1

在这一行中,我收到一条错误消息:

“自动化错误。图书馆未注册”

我尝试过谷歌搜索,但我发现的都是一个旧版本的Office/Project。

任何帮助都将不胜感激。

EN

回答 1

Stack Overflow用户

发布于 2016-04-22 23:30:10

子项目已经有一段时间了。它是子项目的成员。因此,不能使用任务对象迭代子项目集合。

我本以为会出现类型错误或将对象设置为"None“的问题。结合您正在获得的错误消息,我认为您可能有一个由VBA环境引用的旧版本的environment库。在Tools >Reference下,您需要的是“MicrosoftProject15.0对象库”。

另一件事。摘要项目中的任务是插入的项目摘要任务。我从未能够通过尝试遍历摘要项目任务来迭代所有任务,除非子项目与其源断开链接(LinkedToSource = False)。根据您正在做的事情,迭代文件夹的文件系统对象、打开每个项目、提取数据、下一步.要做到这一点,您还需要在引用中包括Microsoft脚本运行时。

希望这能有所帮助。如果这回答了问题,请将其标记为这样。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36801356

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档