打开目录中的所有 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
备注:
- 在自动化另一个应用程序时,将其设置为可见,以便您可以查看和响应弹出消息。
FileOpenEx
方法应该给出完整路径。
- 在循环开始时测试 Dir 函数的输出,因为可能没有任何文件。
- 在 Folder 变量中添加尾部斜杠比稍后添加(在两个地方)更简单、更清晰。
我正在尝试打开特定文件夹中的所有 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
备注:
- 在自动化另一个应用程序时,将其设置为可见,以便您可以查看和响应弹出消息。
FileOpenEx
方法应该给出完整路径。- 在循环开始时测试 Dir 函数的输出,因为可能没有任何文件。
- 在 Folder 变量中添加尾部斜杠比稍后添加(在两个地方)更简单、更清晰。