2017-08-08 175 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