Добрый день!
Извиняюсь, что пропал. Благодаря советам выше удалось реализовать техническое решение через IE, которым все это время и пользовался.
Однако у него обнаружился существенный недостаток, который иногда приводит к необходимости "ручками" доделывать за макросом.
Просьба подсказать решение проблемы.
1. "Идеальный мир".
Через IE вручную сохранить страницу на локальный диск в формате "только HTML.
Затем к сохраненной таким образом странице применяем QueryTables.Add.
Все работает в 100% случаев. Но не хватает автоматизации.
Правильно понимаю, что макросом нельзя запускать в IE функцию "сохранить как"?
2. Сейчас работает такой код:
Код |
---|
' Открываем страницу в IE, ждем проверки браузера
Set IE = CreateObject("InternetExplorer.Application")
IE.Visible = False
IE.Navigate Adress1
While IE.busy Or (IE.readyState <> 4)
DoEvents
Wend
Application.Wait (Now + TimeValue("0:00:07"))
' Сохраняем на диск
FullFileName = ThisWorkbook.Path & Application.PathSeparator & ShortFileName
F = FreeFile
WebPageHTML = IE.Document.body.innerHTML
Open FullFileName For Output As #F: Print #F, WebPageHTML: Close #F
' Закрываем IE
IE.Quit
Set IE = Nothing
' Проводим перевод в табличную форму
With ActiveSheet.QueryTables.Add(Connection:= _
"URL;" & "file:///" & FullFileName, Destination:=Range("$A$1"))
.Name = (ID)
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.WebSelectionType = xlEntirePage
.WebFormatting = xlWebFormattingNone
.WebPreFormattedTextToColumns = True
.WebConsecutiveDelimitersAsOne = True
.WebSingleBlockTextImport = False
.WebDisableDateRecognition = False
.WebDisableRedirections = False
.Refresh BackgroundQuery:=False
End With
|
В 85% случаев все работает.
Но! В 15% случаев при сохранении html влезают иероглифы типа такого: ֲכאהווע ףקאסעךמל ג דמנמהו �מגקוד.
Как это исправить?