438对象不支持此属性或方法MS Project和Excel宏

时间:2016-12-11 20:13:29

标签: excel vba excel-vba macros

我在MS Project中编写的VBA中有以下代码,它调用Excel电子表格。我已经为订购的Project,Excel和Officein修改了v15运行时库。

当我运行它时由于错误而无法编译438对象不支持该行的属性或方法

  

strFileToOpen = Application.GetOpenFilename _

....等。

任何人都可以建议在哪里看,因为这似乎对我来说是正确的语法。

Dim strFileToOpen As Variant

strFileToOpen = Application.GetOpenFilename _
    (Title:="Please choose a file to open", FileFilter:="Excel Files *.xls* (*.xls*),")
Workbooks.Open FileName:=strFileToOpen
'# Open Workbook
MsgBox strFileToOpen

1 个答案:

答案 0 :(得分:3)

Project和Excel都有一个Application对象,可以直接通过名称" Application"来引用。当宏在Project中运行时,对Application的无限制引用将引用Project自己的Application object

GetOpenFilename method是Excel Application对象的一部分,而不是Project Application对象。要调用此方法,您需要使用对Excel Application对象的引用来限定调用,如下所示:

Dim xl As Excel.Application
Set xl = New Excel.Application
xl.Visible = True

Dim strFileToOpen As Variant

strFileToOpen = xl.GetOpenFilename _
    (Title:="Please choose a file to open", FileFilter:="Excel Files *.xls* (*.xls*),")
xl.Workbooks.Open FileName:=strFileToOpen
'# Open Workbook
MsgBox strFileToOpen