【问题标题】:Access VBA getelementsbytagname windows 10 issue?访问VBA getelementsbytagname windows 10问题?
【发布时间】:2015-12-20 10:33:42
【问题描述】:

我有访问 VBA 脚本以从多个网站提取数据。这些与 Office 2013 和 Windows 7 完美配合。但是,自从升级到 Windows 10 后,我遇到了间歇性错误(不一定在同一个地方使用相同的数据),或者有时没有从标签中提取数据。当我访问具有特定索引的特定标签时,它似乎也会发生,例如

tempV = TDelement.getElementsByTagName("td")(0).innerText

我使用IE作为浏览器对象创建如下:

Set objIE = CreateObject("InternetExplorer.Application")

升级 Windows 是否有任何问题? (新手,对任何不正确的术语表示歉意)

【问题讨论】:

  • 请使用反引号正确格式化代码表达式。例如:return Rx.Observable.fromPromise(jQuery.getJSON(requestUrl))。它使您的代码更具可读性并提高您获得答案的机会
  • 没有 HTML 或 URL 来制作这个 minimal reproducible example

标签: vba internet-explorer-11 ms-access-2013


【解决方案1】:

考虑将 MSXML 的 IXMLHTTPRequest 对象用于 Web 服务器请求。 IE 不再是 Windows 上的专用浏览器,因此可能无法完全支持 Windows 10 的自动化。

Dim Req As Object, xmlobj As Object
Dim strWeb As String, myFile As String

' READ HTML PAGE
Set Req = CreateObject("MSXML2.XMLHTTP")
Req.Open "GET", "http://www.example.coms/", False
Req.send

' HTML/TEXT
strWeb = Req.responseText
myFile = "C:\Path\To\File.txt"
Open myFile For Output As #1
Write #1, strWeb
Close #1

' XML
Set xmlObj = CreateObject("MSXML2.DOMDocument")
myFile = "C:\Path\To\File.xml"
xmlObj.LoadXML Req.responseText
xmlObj.Save myFile

Set Req = Nothing
Set xmlObj = Nothing

【讨论】:

  • 非常感谢您的回复。我会去的,稍后再发布结果。我使用 IE 对象的主要原因是避免编写代码来登录网站,因为我可以在浏览器上登录。看起来这种懒惰在未来可能不是一个选择:(
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-12-22
  • 1970-01-01
  • 2012-07-04
  • 2016-05-26
  • 2017-02-17
  • 1970-01-01
相关资源
最近更新 更多