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/cn.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灯, 水草

请输入看板名称,例如:WOW站内搜寻

TOP