Mat*_*NNZ 10 vba xmlhttprequest
以下Excel宏(它正在向此网页发出xmlhttp请求以在第二阶段检索某些值)在VBA中正常工作,直到一段时间之前:
Sub WebReq()
Link = "http://it.finance.yahoo.com/q?s=^FCHI&ql=10" & str(rnd())
Set htm = CreateObject("htmlFile")
Set RequestWeb = CreateObject("msxml2.xmlhttp")
With RequestWeb
.Open "GET", "" & Link & "", False
.send
htm.body.innerhtml = .responsetext
End With
End Sub
Run Code Online (Sandbox Code Playgroud)
现在,相反,在方法的调用:
.send
Run Code Online (Sandbox Code Playgroud)
对象msxml2.xmlhttp引发以下错误:
Run-time error '-2147024891 (80070005)'
Access is denied.
Run Code Online (Sandbox Code Playgroud)
我一直在网上看,但所有类似的线程都没有回答.任何人都可以解释一下这个错误意味着什么,如果有什么方法我可以解决它甚至只是解决它?
注意:已添加变量"链接"末尾的随机字符串以强制重新加载页面,因为脚本正在检索实时值,因此每次都应加载它.
附加信息:在寻找解决方案时,我现在注意到链接的随机部分即使在我结束运行并再次重新启动时总是产生相同的值:
Link = http://it.finance.yahoo.com/q?s=^FCHI&ql=10 .7055475
Run Code Online (Sandbox Code Playgroud)
为什么会这样?rnd()
每次通话都不应该产生0到1之间的新随机值?
访问被拒绝是 IE 问题
internet options > security tab > custom security level > Miscellaneous >Access data sources across domains > enable
Run Code Online (Sandbox Code Playgroud)
更新
Sub WebReq()
link = "http://it.finance.yahoo.com/q?s=^FCHI&ql=10" & Str(Rnd())
Set htm = CreateObject("htmlFile")
Dim objHttp
Set objHttp = CreateObject("Msxml2.ServerXMLHTTP")
objHttp.Open "GET", link, False
objHttp.Send
htm.body.innerhtml = objHttp.responsetext
Set objHttp = Nothing
End Sub
Run Code Online (Sandbox Code Playgroud)