Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel VBA InternetExplorer页面加载错误_Excel_Vba - Fatal编程技术网

Excel VBA InternetExplorer页面加载错误

Excel VBA InternetExplorer页面加载错误,excel,vba,Excel,Vba,当我用F5运行下面的代码时,它在这一行上给我一条错误消息“Object variable or with block variable not set” (Set DivClasses=HTMLDoc.getElementsByClassName(“srp_containerfl”),因为在单击按钮后页面未完全加载(Do While IEObj.readyState 4或IEObj.Busy:DoEvents:Loop)这行代码工作不正常,因为它将在完全加载页面之前转到下一行 如果我手动运行这段

当我用F5运行下面的代码时,它在这一行上给我一条错误消息“Object variable or with block variable not set” (Set DivClasses=HTMLDoc.getElementsByClassName(“srp_containerfl”),因为在单击按钮后页面未完全加载(Do While IEObj.readyState 4或IEObj.Busy:DoEvents:Loop)这行代码工作不正常,因为它将在完全加载页面之前转到下一行

如果我手动运行这段代码并给一些时间来加载页面,它运行得很好

Sub-Fetch_NaukriDotCom_Data()

Dim IEObj作为InternetExplorer
将HTMLDoc设置为MSHTML.HTMLDocument
Dim divcl作为MSHTML.IHTMLElement
Dim DivClass作为MSHTML.IHTMLElement
将Div类设置为MSHTML.IHTMLElementCollection
将数据容器设置为MSHTML.IHTMLElement
Dim DataContainerChild作为MSHTML.IHTMLElement
将DataContainerChilds设置为MSHTML.IHTMLElementCollection
将DataOneContainer设置为MSHTML.IHTMLElement
将DataOneContainers设置为MSHTML.IHTMLElementCollection
Dim StrClassName作为字符串
作为整数的Dim Int_i
Set IEObj=新的InternetExplorer
IEObj.Visible=True
“导航”https://www.naukri.com/"
与IEObj
执行While.readyState 4或.Busy:DoEvents:Loop
.document.getElementsByName(“qp”).Item.innerText=“VBA开发者”
.document.getElementsByName(“ql”).Item.innerText=“Noida”
.document.getElementById(“qsbFormBtn”)。单击
以
执行IEObj.readyState 4或IEObj.Busy:DoEvents:Loop'此循环无法正常工作
'转到下一行,而不完全加载页面
设置HTMLDoc=New MSHTML.HTMLDocument
设置HTMLDoc=IEObj.document
Set DivClasses=HTMLDoc.getElementsByClassName(“srp_container fl”)'此处发生错误
设置DataContainerChilds=DivClasses.Item.childs
端接头

请帮我解决这个问题

谢谢
卡西夫

是的,IE有时表现得很滑稽,因此我用这个

替换

Do While IEObj.readyState <> 4 Or IEObj.Busy: DoEvents: Loop

是的,IE有时表现得很滑稽,所以我用这个

替换

Do While IEObj.readyState <> 4 Or IEObj.Busy: DoEvents: Loop

感谢您的回复,但它仍然不起作用,当我用F5运行此代码时,它在行上给了我一个错误(Set DataContainerChilds=DivClasses.Item.childs),当我手动将光标放在行上(Set DivClasses=HTMLDoc.getElementsByClassName(“srp_container fl”))并用F8手动运行时,这不是给我一个错误和运行良好,为什么?请帮帮我。Kashif.感谢您的回复,但它仍然不起作用,当我用F5运行此代码时,它在行上给了我一个错误(Set DataContainerChilds=DivClasses.Item.childs),当我手动将光标放在行上(Set DivClasses=HTMLDoc.getElementsByClassName(“srp_container fl”))并用F8手动运行时,这不是给我一个错误和运行良好,为什么?请帮帮我。Kashif.也许只是
IEObj.navigate“https://www.naukri.com/vba-developer-jobs-in-noida“
也许只是
IEObj.navigate”https://www.naukri.com/vba-developer-jobs-in-noida“
Do While IEObj.readyState <> 4 Or IEObj.Busy: Wait 5 : Loop
Private Sub Wait(ByVal nSec As Long)
    nSec = nSec + Timer
    While nSec > Timer
        DoEvents
    Wend
End Sub