Также может оказаться очень полезным попробовать REQUESTIFY - библиотеку, упрощающую HTTP-запрос узла.
https://github.com/ranm8/requestify
var requestify = require('requestify');
Получение запроса:
requestify.get('http://example.com').then(function(response) {
// Get the response body
response.getBody();
});
И к json:
requestify.post('http://example.com', {
hello: 'world'
})
.then(function(response) {
// Get the response body (JSON parsed or jQuery object for XMLs)
response.getBody();
// Get the raw response body
response.body;
});
Вы можете видеть, что ваш код не был написан эффективным способом. Для альтернативного подхода, вы можете сослаться на пример ниже, который отлично работает с Windows 10.
Dim IE As Object
Sub demo()
Application.ScreenUpdating = False
Set IE = CreateObject("InternetExplorer.Application")
IE.Visible = True
IE.Navigate "C:\Users\Administrator\Desktop\sample.html"
While IE.Busy
DoEvents
Wend
wait 1
IE.Document.getElementById("firstname").Value = ThisWorkbook.Sheets("Sheet1").Range("A1")
wait 1
IE.Document.getElementById("lastname").Value = ThisWorkbook.Sheets("Sheet1").Range("A2")
wait 1
IE.Document.getElementById("submit_btn").Click
IE.Quit
Set IE = Nothing
Application.ScreenUpdating = True
End Sub
Private Sub wait(seconds As Long)
Dim endTime As Date
endTime = DateAdd("s", seconds, Now())
Do While Now() < endTime
DoEvents
Loop
End Sub
Вывод:
Если говорить о вышеприведенном коде, чем вы можете попытаться поставить точку останова на эту строку и попробуйте отладить код. Проверьте, какое значение содержится в ячейке B5, и проверьте, успешно ли выполняется эта строка. Для тестирования попробуйте назначить статическое значение этому текстовому полю.