Office 板


LINE

假設說,我用vba近入了某網頁 網頁上面的資料需要輸入日期查尋 我將日期都填入後 找出type="submit" 開始搜索資料 接著本該是資料會先列出來 然後 excelWB 17,0 excelWB 12,2 會將網頁上的所有資料給copy出來 (一般網頁教學大致上是這樣) 但很奇怪的是 . 順序卻變成 在資料還在搜尋沒完成時 就全選拷貝了 . 最終貼上工作表的資料只有一開始還沒搜尋的時候 . . 而我做了一個測試 我在 MyBrowser.ExecWB 17, 0 'Select All 這行 放了一個中斷點暫停一下 . 然後繼續跑 資料就正常的出現搜尋後的資料了 求高手指點 . . . . (以上登入IE帳密跟設定網頁部份恕刪) Set MyBrowser = New InternetExplorer MyBrowser.Silent = True MyBrowser.navigate MyURL MyBrowser.Visible = True Do Loop Until MyBrowser.readyState = READYSTATE_COMPLETE Set HTMLDoc = MyBrowser.document HTMLDoc.all.Email.Value = 帳號 'Enter your email id here HTMLDoc.all.passwd.Value = 密碼 'Enter your password here For Each MyHTML_Element In HTMLDoc.getElementsByTagName("input") If MyHTML_Element.Type = "submit" Then MyHTML_Element.Click: Exit For End If Next Do While MyBrowser.readyState = 4 '等待網頁開啟 DoEvents Loop MyBrowser.navigate MyURL MyBrowser.Visible = True Do Loop Until MyBrowser.readyState = READYSTATE_COMPLETE Set HTMLDoc = MyBrowser.document Set HTMLDoc = MyBrowser.document HTMLDoc.all.txtsdate.Value = 開始日期 HTMLDoc.all.txtedate.Value = 結束日期 For Each MyHTML_Element In HTMLDoc.getElementsByTagName("input") If MyHTML_Element.Type = "submit" Then MyHTML_Element.Click: Exit For End If Next Do While MyBrowser.readyState = 4 '等待網頁開啟 DoEvents Loop '------------------------------------------------ MyBrowser.ExecWB 17, 0 'Select All MyBrowser.ExecWB 12, 2 'Copy selection '------------------------------------------------ Sheets("網頁資料自動匯入用").Select Cells.Select ActiveSheet.PasteSpecial Format:="HTML", link:=False, DisplayAsIcon:= _ False, NoHTMLFormatting:=True MyBrowser.Quit --



※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.35.158.244
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Office/M.1482541341.A.71B.html ※ 編輯: waiter337 (114.35.158.244), 12/24/2016 09:06:13
1F:→ soyoso: mybrowser.busy、application.wait…等試試 12/24 10:10
2F:→ waiter337: 你太強了 200p附上 12/24 10:23
Do While MyBrowser.Busy Or _ MyBrowser.readyState <> 4 DoEvents Loop Do Loop Until MyBrowser.readyState = READYSTATE_COMPLETE ※ 編輯: waiter337 (114.35.158.244), 12/24/2016 10:28:28 另外請教一下 如果有跳出js的alert視窗 按下確定 空白 或esc 就可以跳離 我試了很多方法 但沒辦法成功的選取警告視窗 是該js網頁本身的alert 我用sendkey 的alt+tab兩下想回頭選 但用巨集還是會卡住 目前嘗試過這些 但無解 該網頁我用 Set MyBrowser = New InternetExplorer '--------------以下為死馬當活馬醫到處亂塞的巨集 MyBrowser.Silent = True Application.SendKeys ("%{TAB}") DoEvents Application.SendKeys ("%{TAB}") DoEvents Application.SendKeys ("enter") Application.SendKeys ("ESC") DoEvents HTMLDoc.Click 但沒有一個成功 求S大解惑一下 ※ 編輯: waiter337 (1.175.32.129), 12/24/2016 15:20:40 還有這些 ' lngHwnd = FindWindow(vbNullString, "Windows Internet Explorer") ' lngParent = GetParent(lngHwnd) ' If lngHwnd > 0 And lngParent = lngFrmHwnd Then ' SetForegroundWindow lngHwnd ' SendKeys "~" ' ' lngHwnd = 0 '<----- 拿掉這個看看. ' End If ' pDisp.document.parentWindow.execScript "window.alert=null;" ' pDisp.document.parentWindow.execScript "window.confirm=null;" ' pDisp.document.parentWindow.execScript "window.showModalDialog=null;" ' pDisp.document.parentWindow.execScript "window.open=null;" ※ 編輯: waiter337 (1.175.32.129), 12/24/2016 15:21:10 但我也在懷疑 是不是警告視窗跳的速度比較慢 所以這些按鍵其實 是被先用掉了 ※ 編輯: waiter337 (1.175.32.129), 12/24/2016 15:22:43 Do While MyBrowser.busy Or _ MyBrowser.readyState <> 4 ' DoEvents MyBrowser.Silent = True ' MyHTML_Element.Select ' MyHTML_Element.Click ' MyBrowser.Select ' MyBrowser.Click Application.SendKeys ("%{TAB}") DoEvents Application.SendKeys ("%{TAB}") DoEvents ' Application.SendKeys ("enter") Application.SendKeys ("ESC") ' DoEvents ' HTMLDoc.Click ' MyHTML_Element.Select ' MyHTML_Element.Click ' MyBrowser.Select ' MyBrowser.Click Loop Do Loop Until MyBrowser.readyState = READYSTATE_COMPLETE ' SendKeys "~" 目前狀況 我被我公司的伺服器給鎖了(要等30分鐘才會解開) 剛剛按下去按鈕 我崩潰了 一秒鐘連續登入錯誤四次,剛大概連續登入上百次了.... 然後就GG 但不知道是不是有稍微成功了 目前沒被我註掉的 可能就有機會 因為好像跟我想的一樣 我在警告還沒跳出來之前就已經sendkey了 所以要在警告跳出來的迴圈內sendkey可能才有效果 但如果sendkey enter或"~"空白鍵 就太危險了 所以半個小時後我試試看esc ※ 編輯: waiter337 (1.175.32.129), 12/24/2016 15:46:01
3F:→ soyoso: alert的方面,版本之前有一篇#1NTynmw0看看是否可協助到 12/24 21:06
這篇我有注意到 不過我還沒辦法領悟這篇的關鍵 看似好像要跳到api設定 不過目前問題還是沒找到施力點 ※ 編輯: waiter337 (114.35.158.244), 12/25/2016 03:45:48
4F:→ Linkey: application.wait(now()+timeserial(hh:mm:ss)) 12/25 11:13
5F:→ Linkey: 加在sendkeys前面,應該只需要送出Enter 不需要Tab 12/25 11:15
6F:→ waiter337: 我在試試 01/06 07:11







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:iOS站內搜尋

TOP