Board logo

標題: [發問] vba中引用ie時的 彈跳視窗如何關閉呢? [打印本頁]

作者: joey0415    時間: 2013-8-14 13:19     標題: vba中引用ie時的 彈跳視窗如何關閉呢?

本帖最後由 joey0415 於 2013-8-14 13:23 編輯

集保網頁
http://www.tdcc.com.tw/smWeb/QryStock.jsp


以前下載集保網頁時,如果有出現彈出視窗時,只要寫下列語句就可以關閉視窗
  1. Public Declare Function PostMessage Lib "user32" Alias "PostMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
  2. '取得最近一個彈跳視窗的代碼
  3. Public Declare Function GetLastActivePopup Lib "user32" (ByVal hwndOwnder As Long) As Long
  4. '讓視窗停留


  5.          
  6. While ie.readystate <> 4 Or ie.busy

  7. '            如果出現彈跳視窗時請確認是否和ie的相同,如果不同時請關掉它
  8.                 alerthwnd = GetLastActivePopup(ie.hwnd)
  9.                 If alerthwnd <> ie.hwnd Then
  10. '                調用上面的公用設定
  11.                     PostMessage alerthwnd, 16, 1, 0
  12.                 End If
  13.             Wend
複製代碼
聽高手說,以用在xp中可以用上面的語句,應該沒錯,可是現在是win7就不行了,不知道有高手,還有其它寫法,可以將找不到資料的彈出視窗關閉呢?才能讓程式往下執行呢?

附上出現問題的視窗圖片

以股票1256為例,選擇月份為20120801


[attach]15773[/attach]
作者: million2billion    時間: 2014-1-21 15:48

上來閒逛,發現J大您也有遇到這個問題!
以前0000~9999就可以下載所有資料," 查無資料"的就給它 Sendkey下去!
現在Win7+office2003 行不通了! 關不掉Alert視窗.




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)