返回列表 上一主題 發帖

(發問)WEB查詢,如何取消跳出的警告視窗

回復 16# 7777


    試試看吧!
  1. Sub test()
  2.     Dim x
  3.     Dim oie As Object: Set oie = CreateObject("internetexplorer.application")
  4.     With oie
  5.         .Visible = True
  6.         .Navigate ""
  7.         Do While .readystate <> 4 Or .busy: DoEvents: Loop
  8. Set wshshell = CreateObject("wscript.shell")

  9. Do
  10.     ret = wshshell.AppActivate("Microsoft Excel")
  11. Loop Until ret = True

  12.     Application.Wait Now + 2 / 86400
  13.     ret = wshshell.AppActivate("Microsoft Excel")
  14.         If ret = True Then
  15.                    ret = wshshell.AppActivate("Microsoft Excel")
  16.                 Application.Wait Now + 2 / 86400
  17.                 wshshell.SendKeys "{enter}"
  18.         End If
  19.         Application.Wait Now + 2 / 86400
  20.         Do While .readystate <> 4 Or .busy: DoEvents: Loop
  21.         .Quit
  22.     End With
  23. End Sub
複製代碼
一分努力,一分收穫。
發問題前可以先搜索內文是否有相關範例。

TOP

回復 18# 7777


    網址3個的話要看你讀取順序,猜你應該都是分批讀取吧,只要在網址地方改成字串再用迴圈方式重複這段程序即可,
或是你可以附上你的最新進度檔案,這樣比較清楚你的問題點。
其實這段程序只是讓你測試用,從第7列開始才是重點。
  1. Sub test()
  2.     Dim oie As Object: Set oie = CreateObject("internetexplorer.application")
  3.     With oie
  4.         '.Visible = True '這部分註解掉也沒關係,註解掉不會顯示背景還是會執行跟False一樣,因為測試所以需開啟畫面確認後續程序無誤
  5.         .Navigate "" '輸入網址
  6.         Do While .readystate <> 4 Or .busy: DoEvents: Loop
  7. Set wshshell = CreateObject("wscript.shell") '引用其它物件,呼叫其它應用程式

  8. Do '迴圈應用程式中指定物件
  9.     ret = wshshell.AppActivate("Microsoft Excel") '找尋引用物件名稱,如果跳出視窗標題是"網頁訊息"修改成警告訊息標題
  10.     '陳述式AppActivate標題 [等待]
  11. Loop Until ret = True '當ret有值時結束迴圈

  12.     Application.Wait Now + 2 / 86400 '這部分其實可以不等待
  13.     ret = wshshell.AppActivate("Microsoft Excel")
  14.         If ret = True Then
  15.                    ret = wshshell.AppActivate("Microsoft Excel")
  16.                 Application.Wait Now + 2 / 86400 '這裡一定要等待2秒,其實時間不一定,只是SendKeys這個動作常常發生不穩定性問題,確保程序沒問題才執行enter這動作
  17.                 wshshell.SendKeys "{enter}" '對警告訊息視窗按下鍵盤enter按鍵
  18.         End If
  19.         Application.Wait Now + 2 / 86400 '等待2秒
  20.         Do While .readystate <> 4 Or .busy: DoEvents: Loop '確認網頁載入完成
  21.         .Quit '關閉網頁
  22.     End With
  23. End Sub
複製代碼
以上是我以前從麻辣家族某個地方Copy過來的(忘記來源了...抱歉),我實際用上是針對會跳出警告視窗地方加入以下程序即可。
  1. Set Wshshell = CreateObject("wscript.shell")'新增Wshshell為呼叫其它應用程式物件
  2. Application.Wait Now + 2 / 86400'等待2秒
  3. ret = Wshshell.AppActivate("網頁訊息")'ret應用程式中是否有"網頁訊息"Title
  4. If ret = True Then'確認有執行
  5. Wshshell.SendKeys "{enter}"'鍵盤操作enter指令
  6. End If
複製代碼
一分努力,一分收穫。
發問題前可以先搜索內文是否有相關範例。

TOP

        靜思自在 : 做好事不能少我一人,做壞事不能多我一人。
返回列表 上一主題