【问题标题】:Opening a Microsoft Project file with VBA使用 VBA 打开 Microsoft Project 文件
【发布时间】:2020-07-01 07:40:11
【问题描述】:

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

运行时错误“13”:类型不匹配

在该命令上: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

【问题讨论】:

    标签: excel vba ms-project


    【解决方案1】:

    您收到错误是因为documentation for the open call 声明该函数的返回值为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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-16
      • 2015-07-13
      • 1970-01-01
      相关资源
      最近更新 更多