2015-12-19 5 views
1

У меня есть сценарии доступа VBA, чтобы извлекать данные с нескольких веб-сайтов. Они отлично работали с Office 2013 и Windows 7. Однако с момента обновления до Windows 10 я получал прерывистые ошибки (не обязательно в одном месте с теми же данными), или иногда данные не извлекаются из тегов. По-видимому, это происходит, когда я обращаюсь к определенному тегу с определенным индексом, например.Доступ к VBA getelementsbytagname windows 10 issue?

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

Я использую IE в качестве объекта браузера, созданного следующим образом:

Set objIE = CreateObject("InternetExplorer.Application") 

Есть что-нибудь, что обновление для Windows может быть нарушена? (Новичка, поэтому извиняйтесь за любую неверную терминологию)

+0

Пожалуйста, используйте обратные ссылки для правильного форматирования выражения кода. Например: 'return Rx.Observable.fromPromise (jQuery.getJSON (requestUrl))'. Это делает ваш код более читаемым и улучшает ваши шансы получить ответ – user3743222

ответ

2

Рассмотрите возможность использования объекта IXMLHTTPRequest MSXML для запросов веб-сервера. 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 
+0

Большое спасибо за ответ. Позже я пошлю поход. Основная причина, по которой я использую объект IE, заключается в том, чтобы избежать необходимости писать код для входа на сайты, поскольку я могу просто войти в систему в браузере. Глядя, как этот ленивый, возможно, не будет вариантом в будущем :( – woody

Смежные вопросы