2012-03-07 120 views
0

是否可以使用文件路径从excel vba打开所有类型的文件?现在我可以用简单的打开的工作簿:使用文件路径Excel-VBA打开文件

Workbooks.Open myDestFilePath 

但如果myDestFilePath确实是一个.PPTX文件或任何其他?

+0

你可以用' Shell()'在其默认应用程序中打开任何文档(假设这种文件存在一个现有的文件类型关联) – 2012-03-08 00:56:32

+0

http://www.erlandsendata.no/english/index.php?d=envbafoldersfileopen或http: // SUP port.microsoft.com/kb/170918 – 2012-03-08 01:04:43

回答

0

您绝对可以使用Excel VBA自动执行其他应用程序,但您需要为该任务使用正确的应用程序对象。如果您尝试打开PowerPoint文件,则需要使用PowerPoint才能执行此操作。这里有一个最原始的例子:

'remember to add the powerpoint object library (Tools->References) 
Sub OpenPPTFile() 
    Dim pptApp As PowerPoint.Application 
    Dim pptPres As PowerPoint.Presentation 

    Set pptApp = New PowerPoint.Application 

    Set pptPres = pptApp.Presentations.Open("filename.pptx") 

    'here you can add code to have powerpoint do all kinds of nifty things to your file 

    pptPres.Close 

    pptApp.Quit 

    Set pptPres = Nothing 
    Set pptApp = Nothing 
End Sub 

所以,如果你的问题是“我可以用Excel打开其他应用程序创建的文件”,简单的答案是否定的。但是,如果问题是“我可以使用Excel VBA自动执行其他应用程序对非Excel文件执行操作吗?”答案是肯定的。

+0

那么该pptx文件已经创建...我只是想在用户输入信息后打开它...然后我找到文件路径。当我有文件路径时,我想打开位于该位置的文档。 – thebiglebowski11 2012-03-07 23:09:31

+0

我可能会打开除PowerPoint之外的其他东西,可能是Word文档或其他一些CAD软件文档 – thebiglebowski11 2012-03-07 23:10:08

+0

一般而言,如果您要在VBA中执行此操作,您将被限制为Office文档(除非VBA自动化库已经完成提供给你的特定应用程序)。如果我可能会问,一旦打开文件,你会怎么做? – hexboy 2012-03-07 23:17:05

2

要使用内部呼叫,没有一个API我还没有发现太多,

ThisWorkbook.FollowHyperlink "FilePath" 

不会打开

例如:

ThisWorkbook.FollowHyperlink "D:\My documents\Movie.mov"