VBA調用InternetExplorer操作IE瀏覽器,自動彈出文件選擇對話框時,VBA會處於阻塞狀態,你必須手工關閉文件選擇對話框,VBA才能繼續向后運行。
例如下面網址,就有一個文件瀏覽按鈕:
http://www.zytxs.com/web1/upload.aspx
我做了一個exe文件,可以在另一個進程中來處理文件對話框。
Sub Test()
Dim File As MSHTML.HTMLInputFileElement
Dim WSH As Object
Set File = IE.document.getElementById("myfile")
Set WSH = CreateObject("WScript.Shell")
WSH.Run "E:\Office_VBA\AutoSelectFile\AutoSelectFile.exe E:\Office_VBA\Translate.rar", vbHide, False
File.Click
End Sub
上述代碼,WSH.Run的參數中,包含兩部分,空格左側是處理文件對話框的exe文件路徑(在本帖中可以下載並解壓縮)
后面的 E:\Office_VBA\Translate.rar 是電腦中隨便的一個文件路徑,也就是要往文件選擇對話框中上傳的那個文件。
執行上述Test過程,VBA會自動打開文件瀏覽對話框,然后自動給對話框設置路徑,並確定。
exe文件下載地址
下載后,解壓縮到不含空格的路徑下。請勿點擊exe文件。
請打開Excel文件,然后點擊工作表上的按鈕進行測試。