我是VBA编码新手。我想要NSE Company tracker websites的一些数据。 我尝试使用下面的代码
Private Sub IE_Automation()
Dim R As Long
Dim IE As Object
Dim ieurl As String
Set IE = CreateObject("internetexplorer.application")
IE.Visible = True 'internet explorer run command
For *R = 2 To 10*
ieurl = "http://www.nseindia.com/companytracker/cmtracker.jsp?symbol=" & Sheets("Sheet1").Cells(*R*, 1)
IE.navigate ieurl 'internet url
Do
DoEvents
Loop While IE.Busy
IE.ExecWB 17, 2 'IE page selection command
IE.ExecWB 12, 0 'IE page copy command
Range("A2").Select
Sheets("Sheet2").PasteSpecial Format:="Text", Link:=False, DisplayAsIcon:= _
False 'IE page data paste command in excel
Next R
End Sub
请在 R 的地方使用以下脚本代码: MANAPPURAM, PDSMFL, MINDACORP, CIGNITITEC, SHEMAROO, SUPERHOUSE, SHARDACROP, 雪人, SBIN
当我执行上面的代码时,VBA仅粘贴第一个Scrip的数据,有时它会在复制粘贴代码时显示调试错误。如果我手动调试宏(使用F8键),它正在执行该过程。
我想将所有脚本(逐个)的数据复制并粘贴到excel中。
请帮我将网站上的数据废弃到excel中。
答案 0 :(得分:0)
如果代码在调试模式下正确执行,问题可能只是调试模式,允许页面有更多时间实际加载。我发现在对正在加载的页面进行操作之前,最好检查.Busy
和.readyState
。
Do
DoEvents
Loop While (IE.Busy Or IE.readyState <> READYSTATE_COMPLETE)
这可以放在单个代码行中,
Do While (IE.Busy Or IE.readyState <> READYSTATE_COMPLETE): DoEvents: Loop
READYSTATE_COMPLETE
常量等于4.这些是在VBE的Microsoft Internet Controls参考中定义的。
更多信息readyState property。