猿问

Excel VBA如何使用默认应用程序打开文件

我想要一个Excel电子表格,该文件在A列中具有文件路径和名称。运行宏时,假设应该在用户计算机上打开A1中指定的文件。该文件可以是.doc,.xls,.txt等...,而不是我的vba需要知道应用程序的完整路径,我如何让vba告诉机器“请打开此文件并使用您的应用程序与扩展名相关联”?


我已经发现它可以使用完整路径:


dblShellReturned = Shell("C:\Windows\System32\notepad.exe myfile.txt, vbNormalFocus)

我怎样才能使它与类似的东西一起工作:


dblShellReturned = Shell("myfile.txt", vbNormalFocus) ' how do I get this to work

先感谢您!


慕无忌1623718
浏览 1451回答 3
3回答

慕慕森

这适用于我在Excel和Word中Sub runit()   Dim Shex As Object   Set Shex = CreateObject("Shell.Application")   tgtfile = "C:\Nax\dud.txt"   Shex.Open (tgtfile)End Sub或...按照下面的Expenzor的评论CreateObject("Shell.Application").Open("C:\Nax\dud.txt")

MMTTMM

下面的代码是一个模板。但是,您可能需要将默认(工作)目录更新为文件的位置。Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" _                   (ByVal hwnd As Long, ByVal lpszOp As String, _                    ByVal lpszFile As String, ByVal lpszParams As String, _                    ByVal LpszDir As String, ByVal FsShowCmd As Long) _Function StartDoc(DocName As String) As Long      Dim Scr_hDC As Long      Scr_hDC = GetDesktopWindow()      StartDoc = ShellExecute(Scr_hDC, "Open", DocName, _      "", "C:\", SW_SHOWNORMAL) End Function
随时随地看视频慕课网APP
我要回答