2017-08-08 133 views
0

我一直试图在VB6中使用ShellExecute方法打开文件,文件名将从窗体内的文本框中获取。但该文件不打开,也没有错误。VB6 - ShellExecute不工作

但是,如果我直接传递文件名而不是从变量引用,同样的方法工作顺利。以下代码供参考。不知道问题的存在,但任何帮助非常感谢。

WorkingCode

ShellExecute 0, vbNullString, "F:\Desktop\SBKL\template.xlsx", vbNullString, vbNullString, vbNormalFocus 

非工作守则

Dim FlNme As String 
FlNme = Trim(Me.T_Doc_Link.Text) 
ShellExecute 0, vbNullString, FlNme, vbNullString, vbNullString, vbNormalFocus 
+1

失败时,“FlNme”变量中究竟* *是什么? – RBarryYoung

+0

另外,你应该把它作为一个函数来获得它的返回值:'intReturn = ShellExecute(0,vbNullString,FlNme,vbNullString,vbNullString,vbNormalFocus)'。 – RBarryYoung

+1

@RBarryYoung非常感谢。我尝试着看看FlNme内部到底发生了什么,并发现几乎没有换行符。线索是如何来到线索的。但是,以下代码可以顺利运行:FlNme = Replace(Replace((Trim(Me.T_Doc_Link.Text)),vbCrLf,“”),vbNewLine,“”) – Maruthi

回答

1

之前调用ShellExecute()你应该检查文件是否存在使用Dir$()和警告用户在路径和/或文件是错误的:

If Dir$(FlNme, vbNormal) = vbNullString Then 
    MsgBox "File not found:" & vbCrLf & FlNme 
    Exit Sub 
End If 
ShellExecute 0, vbNullString, FlNme, vbNullString, vbNullString, vbNormalFocus 
+0

现在已解决此问题。我试图找到'Mark Answered'选项,但我无法。 – Maruthi

+0

必须尝试单击我的答案上的向上箭头? –

+0

完成..谢谢。标记为已完成 – Maruthi