Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 27923|回复: 7

[已解决]IE.busy和IE.Readystate = 4,有区别吗?

[复制链接]
发表于 2010-11-29 19:14 | 显示全部楼层 |阅读模式


Sub LOADIE()
    Dim IE As Object

    Set IE = CreateObject("InternetExplorer.Application")
    IE.Visible = True
    IE.navigate "www.excelpx.com"  '←打开某个网页,要一定时间,但代码会往下执行
'    Do Until IE.Readystate = 4    '  检查网页是否加载完毕(4表示完全加载)
    Do Until IE.busy
        DoEvents                ' 循环中交回工作权限给系统,以免“软死机”
    Loop
End Sub

  1. 黄绿两句,有区别吗?
  2. Readystate还有哪些值?(0?1?2?....)

谢谢!

最佳答案
2010-12-1 17:05

Property ReadyState As tagREADYSTATE,有5种情况

Const READYSTATE_COMPLETE = 4
Const READYSTATE_INTERACTIVE = 3
Const READYSTATE_LOADED = 2
Const READYSTATE_LOADING = 1
Const READYSTATE_UNINITIALIZED = 0

 楼主| 发表于 2010-11-30 17:26 | 显示全部楼层
回复

使用道具 举报

 楼主| 发表于 2010-12-1 12:54 | 显示全部楼层
回复

使用道具 举报

发表于 2010-12-1 17:05 | 显示全部楼层    本楼为最佳答案   

Property ReadyState As tagREADYSTATE,有5种情况

Const READYSTATE_COMPLETE = 4
Const READYSTATE_INTERACTIVE = 3
Const READYSTATE_LOADED = 2
Const READYSTATE_LOADING = 1
Const READYSTATE_UNINITIALIZED = 0

回复

使用道具 举报

 楼主| 发表于 2010-12-1 17:36 | 显示全部楼层

谢谢吕布!

学习,为什么不好找列?

回复

使用道具 举报

发表于 2010-12-1 17:37 | 显示全部楼层

试验了一下,两者应该是不同的
Sub LOADIE()
' 默认浏览器设为IE
    Dim IE As Object

    Set IE = CreateObject("InternetExplorer.Application")
    IE.Visible = True
    IE.navigate "www.excelpx.com"  '←打开某个网页,要一定时间,但代码会往下执行
    IE.Visible = False
    
    Debug.Print IE.Busy, CLng(IE.ReadyState)
    Do Until IE.ReadyState = 4    '  检查网页是否加载完毕(4表示完全加载)
        '    Do Until IE.busy
        Debug.Print IE.Busy, CLng(IE.ReadyState)
        DoEvents                ' 循环中交回工作权限给系统,以免“软死机”
    Loop
    Debug.Print IE.Busy, CLng(IE.ReadyState)

End Sub

结果是

False          3
False          3
False          4

结果是Busy一直是False,而ReadyState 则一直变化

回复

使用道具 举报

发表于 2012-9-11 02:18 | 显示全部楼层
我也碰到这个问题,我的网页是有框架和iframes的,在iframes在下载数据的时候,IE.BUSY=true!但readystate=4!
回复

使用道具 举报

发表于 2012-11-13 08:17 | 显示全部楼层
自己回一下,frame里的document有readystate,没有busy,在网页执行脚本的过程中是busy,readystate是4,
但在readystate=3之前,ie的readystate状态不可检测,否则出错。。所以需要有onerror resume next

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-5-18 13:31 , Processed in 0.315778 second(s), 9 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表