#excel #vba #msxml2
#excel #vba #msxml2
Вопрос:
Я закодировал эти несколько строк ниже. Код корректно работает, когда я подключаюсь через VPN, но больше не работает вне VPN. Возвращаемый код состояния равен 12007 при выходе из VPN и 200 при использовании VPN.
Например, вы можете использовать myUrl : «https://www.boursedirect.fr/fr/marche/euronext-paris/lyxor-ep-na-us-LU1832418856-MUA-EUR-XPAR/seance»
Есть ли у вас какие-либо идеи, как решить эту проблему?
Public Function InterrogationCours(myUrl) As Double
Dim avant as String, apres as String, cotation As String
avant = "quotation-last bd-streaming-select-value-last"
apres = "</span"
On Error Resume Next
With CreateObject("MSXML2.XMLHTTP")
.Open "GET", myUrl, False
.Send
Debug.Print .Status
If .Status = 200 Then cotation = Split(Split(Split(.responseText, avant)(1), ">")(1), apres)(0)
End With
InterrogationCours = Nettoyage(cotation)
End Function
Комментарии:
1. Измените
Dim avant, apres, cotation As String
наDim avant As String, apres As String, cotation As String
(в VBA вы должны объявлять каждый элемент. То, как вы его объявили, толькоcotation
относится к типу данныхString
. Другие 2 имеют типVariant
). Возможно, это поможет. Кроме того, что такоеNettoyage
?2. @Zac, спасибо за ваши предложения. Однако они не решают мою проблему. Что касается «Nettoyage», то речь идет о функции, которая очищает символьную строку «cotation», чтобы сохранить только ту информацию, которая меня интересует.
3. Изменяет ли VPN вашу страну? И в вашей реальной стране запрещено просматривать страницу?
4. Ошибка 12007 указывает на проблемы с DNS. Веб-сайт, отображаемый в браузере? Пытался
WinHttp.WinHttpRequest.5.1
вместоMSXML2.XMLHTTP