为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕无忌1623718 2019-11-02 14:27:01
我想要一个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先感谢您!
查看完整描述

3 回答

?
慕慕森

TA贡献1856条经验 获得超17个赞

这适用于我在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")


查看完整回答
反对 回复 2019-11-02
?
MMTTMM

TA贡献1869条经验 获得超4个赞

下面的代码是一个模板。但是,您可能需要将默认(工作)目录更新为文件的位置。


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


查看完整回答
反对 回复 2019-11-02
  • 3 回答
  • 0 关注
  • 1450 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信