使用 VBA 打开 Microsoft Project 文件

Opening a Microsoft Project file with VBA

我正在尝试通过 VBA 打开 Microsoft Project 文件,然后将一些范围复制到 excel 工作簿。但是我的代码出现错误:

Run-time error '13': Type mismatch

在该命令上:Set mpp = myMPP.Application.FileOpen(FilenameMPP)

Sub project2xCell()

 Set myMPP = CreateObject("Msproject.Application")
 Set myXLS = CreateObject("Excel.application")

 FilenameMPP = OpenFileDialogMPP() 'Function to browse to a Microsoft Project file
 FilenameExcel = OpenFileDialogXLS() 'Function to browse to a Excel Workbook

 myMPP.Visible = True
 Set mpp = myMPP.Application.FileOpen(FilenameMPP)
 Set wb = Workbooks.Open(FilenameExcel)

End Sub

您收到错误是因为 documentation for the open call 指出函数的 return 值为 Boolean。您正试图将一个布尔值分配给一个对象。因此类型不匹配。

我强烈建议你enable Option Explicit。这将有助于避免您的变量出现一些错误。

此外,您应该考虑使用 early binding(至少在开发的设计和调试阶段)来包含 MS Project 库参考。

Option Explicit

Sub project2xCell()
    Dim myMPP As MSProject.Application
    Set myMPP = CreateObject("Msproject.Application")
    myMPP.Visible = True

    Dim filenameMPP As String
    filenameMPP = OpenFileDialogMPP() 'Function to browse to a Microsoft Project file

    myMPP.FileOpenEx Name:=filenameMPP, ReadOnly:=True
    Set mpp = myMPP.ActiveProject

    '--- now you can work with your project

    myMPP.Quit
End Sub