Дело в куках и автоматическом редиректе. Msxml.XmlHttp автоматически их включает, а HttpWebRequest требует явных приседаний.
On Error Resume Next
If winHttp Is Nothing Then
Set winHttp = CreateObject("WinHttp.WinHttpRequest.5.1")
Else
If Not winHttp.Status = 200 Then
Set winHttp = Nothing
End 'or MsgBox "Connection is broken", vbCritical: Exit Function
End If
End If
после восстановления данных диск работать будет (или это отдельная услуга)?Уроненный диск работать больше не будет никогда, а если вам кто-то предложит такую «услугу», то хватайте свой диск и бегите оттуда, как с пожара.
Восстановление данных стоит дорого потому, что даже однократное чтение с повреждённого диска в специальных условиях, под присмотром специалиста - сложная или очень сложная задача. Запись же вообще делается редко и в очень небольших объёмах - когда пишутся или вручную корректируются модули служебной информации диска.