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

问题描述 投票:1回答:1

我正在尝试打开特定文件夹中的所有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文件时,出现了问题:

enter image description here

有人知道我该如何解决吗?

excel vba ms-project
1个回答
1
投票

首先,您发布的代码与屏幕快照中显示的代码不匹配。屏幕截图代码使用语法从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变量中添加斜杠更简单,更干净。
© www.soinside.com 2019 - 2024. All rights reserved.