返回列表 上一主題 發帖

[發問] 如何用vba執行網頁選擇檔案的功能?

本帖最後由 singo1232001 於 2017-1-9 02:00 編輯

其實,我跟你也遇到相關的問題

不過我是遇到要關閉彈出的alert警告

沒錯,目前會出現兩個問題

第一個也就是你提到的

按下click之後,程式就卡了

ptt那邊也搜過沒答案,但有一個方向

正常來說

當要按下click的上一行

好像就先call了一個autokey(類似連點程式的外掛)
並且預定一秒後按下enter

這時後,原先的程式回到click,按下

程式彈出視窗,不動了

約過一秒後,autokey的程式就會按下enter,就會繼續執行

這個部份我有猜想嘗試一招

曾經超級板主有分享過,兩個同時一起執行的vba
http://forum.twbts.com/viewthread.php?tid=6396
我在猜測這個部份會不會有辦法帶的進來處理


然後第二個問題

我們先忽略掉前面所有的步驟

直接手動開啟彈跳視窗

直接使用
ie.document.writeln ("<script type=""text/javascript"">window.focus()</script>")
的方式按下按鈕

確實按鈕也按下了

但ie也會同時卡死,

最後有個部份可以補充

並不一定要自己開啟一個新ie
  1.     Set objShell = CreateObject("Shell.Application")
  2.     Set objAllWindows = objShell.Windows

  3. For Each ow In objAllWindows
  4.     If (InStr(1, ow, "Internet Explorer", vbTextCompare)) Then
  5.         If (InStr(1, ow.LocationURL, "https://www.google.com.tw", vbTextCompare)) Then
  6.            執行的程式碼
  7.        end if
  8.    end if
複製代碼
可以用if+搜索找出目前開啟的ie


其實我也被彈出的alert搞的精神耗弱了,好慘

TOP

補充一下
  1. Do While (ow.Busy And errorcount < 5)
  2. errorcount = errorcount + 1
  3. ow.document.writeln ("<script type=""text/javascript"">window.focus()</script>")

  4. 'For i = 1 To 50000
  5. 'Next
  6. 'ow.Visible = False
  7. 'ow.Visible = True
  8. Application.SendKeys ("{Enter}")
  9. Loop
複製代碼
的方式按下按鈕

TOP

剛我做了一個測試

可能會有點幫助


常常我們在測試的時候

會因為點選了excel

所以啟用的視窗就被換到excel上面

也就會變成sendkeys 跑去excel

所以我用了一個小訣竅

程式碼是之前超級版主 這篇抓下來的
http://forum.twbts.com/thread-18950-1-3.html
  1. Do While ie.readyState <> 4 Or ow.Busy:
  2.                 DoEvents
  3.                 If ie.Busy Then
  4.                 ie.Visible = False     ''就是從新隱藏使用視窗
  5.                 ie.Visible = True      ''接著又重新顯示active使用視窗
  6.                     ie.document.Focus
  7.                     DoEvents
  8.                     Application.SendKeys "{ENTER}", True   '**按下鍵
  9.                 End If
  10.             Loop
複製代碼
我還在研究alert中...

不過線再問題是 我會使用超板的雙vba

但我不曉得怎麼把單vba call成 雙vba

TOP

回復 6# singo1232001


抱歉  我的雙vba執行還是卡住了,

第一個前導的巨集 我設定5秒後開始
我先按下了第一個巨集
第二個消警告的巨集 我設定10秒後開始
我馬上按下了第二個巨集

但是情況變成這樣
0-----------5------------10----------->
>>>>>>>>(按下click就停住)

第一個vba他跑到ie按下click
警告視窗一跳出來,
第二個倒數中的巨集也跟著卡住了 :'(

TOP

        靜思自在 : 能善用時間的人,必能掌握自己努力的方向。
返回列表 上一主題