为什么我必须在设置变量后等待iframe准备好?

时间:2017-10-13 12:20:34

标签: html vba excel-vba iframe excel

过去几周我一直在努力,但在谷歌的帮助下,设法解决了相当多的问题。现在,在完成代码之后,我想删除过时的行以获得更好的可读性,并偶然发现了一个我不明白的问题。 这可能是因为我只是在VBA编程中表现平庸并且根本不熟悉HTML,如果答案简单明了,请原谅。 我想了解未来编码的问题,所以我理解为什么必须这样做。

出于安全考虑,我无法发布我正在导航的Intranet站点的HTML代码。 我不理解的部分代码是:

Dim IE As New InternetExplorerMedium
Dim Doc As IHTMLDocument
Dim FrmDoc As Object
Dim iFrm as HTMLIFrame
Set Doc = IE.Document
[navigating to the intranet site]

    Set iFrm = Doc.getElementById("ivuFrm_page0ivu2")
    Set FrmDoc = iFrm.contentWindow.Document
    Do While FrmDoc.ReadyState <> "complete": DoEvents: Loop
    Set iFrm = FrmDoc.getElementById("isolatedWorkArea")
    Do While iFrm.ReadyState <> "complete": DoEvents: Loop

[downloading the report]

如果我删除其中任何一个循环,则在使用任一变量时都会出现“Object-或With-blockvariable not set”错误。所以当我不等时,那些就不存在了。

如果我像这样设置iFrm变量:

iFrm = Doc.getElementById("ivuFrm_page0ivu2").contentWindow.Document.getElementById("isolatedWorkArea")

使用变量时出现“访问受限”错误。

为什么?

0 个答案:

没有答案