Я пытаюсь открыть файл Microsoft Project через VBA, а затем скопировать некоторые диапазоны в книгу 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


Вы получаете сообщение об ошибке, потому что документация для открытого конкурса указывает, что возвращаемое значение функции равно Boolean. Вы пытаетесь присвоить логическое значение объекту. Таким образом, несоответствие типов.
Очень советую включить Option Explicit. Это поможет избежать некоторых ошибок с вашими переменными.
Кроме того, вам следует рассмотреть возможность использования раннее связывание (по крайней мере, на этапе проектирования и отладки вашей разработки), чтобы включить ссылку на библиотеку 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