我在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
答案 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