打开目录中的所有 MSProject 文件 - Excel VBA

Opening all MSProject file in a directory - Excel VBA

我正在尝试打开特定文件夹中的所有 MS Project 文件以提取每个文件的一些信息并传输到 excel。

Sub OpenProjectFiles()

Dim myMpp As MSProject.Application
Dim FileNameMpp As String, Folder As String


Folder = "C:\Users\nikolasqueiroz\Desktop\VBA Test"
Set myMpp = CreateObject("Msproject.Application")
FileNameMpp = Dir(Folder & "\*.mpp")

Do

myMpp.FileOpenEx Name:=FileNameMpp, ReadOnly:=True
FileNameMpp = Dir

Loop Until FileNameMpp = " "

End Sub

但是当我尝试打开 .mpp 文件时出现问题:

有谁知道我该如何解决这个问题?

首先,您发布的代码与您截图中显示的代码不符。屏幕截图代码使用从 Project Server 打开文件的语法——例如在文件名前加上 <>\

改用此代码:

Sub OpenProjectFiles()

Dim myMpp As MSProject.Application
Dim FileNameMpp As String, Folder As String

Folder = "C:\Users\nikolasqueiroz\Desktop\VBA Test\"
Set myMpp = CreateObject("Msproject.Application")
myMpp.Visible = True
FileNameMpp = Dir(Folder & "*.mpp")

Do While Len(FileNameMpp) > 0

    myMpp.FileOpenEx Name:=Folder & FileNameMpp, ReadOnly:=True
    FileNameMpp = Dir

Loop

End Sub

备注:

  1. 在自动化另一个应用程序时,将其设置为可见,以便您可以查看和响应弹出消息。
  2. FileOpenEx 方法应该给出完整路径。
  3. 在循环开始时测试 Dir 函数的输出,因为可能没有任何文件。
  4. 在 Folder 变量中添加尾部斜杠比稍后添加(在两个地方)更简单、更清晰。