Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.08.2014, 21:40   #1
Shraman
 
Регистрация: 30.03.2014
Сообщений: 3
По умолчанию Исправить ошибку при загрузке HTML-страницы / VBA

Уважаемые коллеги.
Представляю Вашему вниманию код который заходит на mail.ru вводит в строку поиска слово "Москва" и нажимает найти.

в tools все необходимые библиотеки подключены.
Код работает безупречно.

Sub tree()
Dim oIE As Object, s As String
Set oIE = CreateObject("InternetExplorer.Appl ication")
oIE.Visible = 1
s = "http://mail.ru"
oIE.Navigate (s)
Do While oIE.Busy Or (oIE.ReadyState <> 4): DoEvents: Loop


Set NL = oIE.Document.getElementsByTagName(" Input")

NL(8).value = "Москва"
NL(7).Click

If Application.Wait(Now + TimeValue("0:00:10")) Then
oIE.Quit
End If
End Sub


Проблема:
На работе есть корпоративный сайт пытаюсь таким же способом работать с ним из окружения VBA (Excel),
но после отработки следующей строки -

Код Visual Basic
1
oIE.Navigate (s)


Подключение к сайту проподает:
Возникает ошибка Automation error -2блаблабла.
То есть как только загружается страница связь с объектом oIE - проподает, реально пропадает.

Excel 2010, IE 8

Заранее благодарен за помощь
За "дельный" совет кину деньгу на телефон.
Shraman вне форума Ответить с цитированием
Старый 05.08.2014, 22:44   #2
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,858
По умолчанию

Цитата:
Возникает ошибка Automation error -2блаблабла.
текст ошибки пробовали в Google вбить?
что за ошибка? самое важное в сообщении заменили на блаблабла...

Какой URL присвоен переменной s?

Если вручную открыть ваш сайт в IE - всё работает как надо?
EducatedFool вне форума Ответить с цитированием
Старый 06.08.2014, 07:47   #3
Solmir741
Пользователь
 
Регистрация: 06.08.2014
Сообщений: 11
По умолчанию

У меня была подобная проблема. Подозрение на ошибку элемента ActiveX (хотя не уверен). Такое ощущение, что переменная oIE теряет связь с созданным объектом. Попробуйте так:
Код:
Sub tree()
On Error GoTo Errors
Dim oShApp As Object, oWin As Object
Dim oIE As Object, s As String
Errors: Set oIE = CreateObject("InternetExplorer.Application")
oIE.Visible = 1
s = "http://mail.ru"
oIE.Navigate (s)
Do While oIE.Busy Or (oIE.ReadyState <> 4): DoEvents: Loop


Set NL = oIE.Document.getElementsByTagName(" Input")

NL(8).value = "Москва"
NL(7).Click

If Application.Wait(Now + TimeValue("0:00:10")) Then
oIE.Quit
End If
goto ends
Errors:
    Set oShApp = CreateObject("Shell.Application")
    For Each oWin In oShApp.Windows
        If TypeName(oWin.Document) = "HTMLDocument" Then
            Set oIE= oWin
            Exit For
        End If
    Next
ends:
End Sub
Знаю, похоже на танец с бубнами, но данная конструкция мне лично помогла. По другому ошибку победить не получалось.

Последний раз редактировалось Solmir741; 06.08.2014 в 07:58.
Solmir741 вне форума Ответить с цитированием
Старый 18.08.2014, 22:16   #4
Shraman
 
Регистрация: 30.03.2014
Сообщений: 3
По умолчанию

Уважаемый EducatedFool, добрый день.

Отвечаю на Ваши вопросы:
1. Url корректный, тот который надо.
2. При открытии ручками - работает !?
3. в поисковике конкретного объяснения нет, подобная тема ранее не на ру форумах и ком форумах не поднималась (или я не проявил должного усердия).

Ошибка выходит следующая - "Run-time error - 2147417848(80010108) Automation error"
"the object invoked has disconnected from its clients"
Shraman вне форума Ответить с цитированием
Старый 18.08.2014, 22:24   #5
Shraman
 
Регистрация: 30.03.2014
Сообщений: 3
По умолчанию

Уважаемый Solmir741, добрый день.

Cпасибо за пример, такого решения ещё не встречал, подход интересный.
Но, у меня возникает следующая ошибка - Run - time error -2147467259 (80004005) Method Document of object IwebBrowser2 failed
Shraman вне форума Ответить с цитированием
Старый 18.08.2014, 22:42   #6
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,858
По умолчанию

Сложно найти причину без тестирования кода

что возможно:
1) длина URL превышает 255 символов
2) глюк IE при работе с конкретным сайтом (или сайт в IE вообще не работает)
3) глюк скриптов на сайте, которые некорректно работают с данным компонентом
4) в коде что-то не так

PS: Вместо Navigate можете попробовать Navigate2
EducatedFool вне форума Ответить с цитированием
Старый 19.08.2014, 02:57   #7
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

Была такая проблема.
Ie с сайтом не ужился.
Установите Maxthon ,он работает на движке IE.
Прекрасно работаю с ним.
Объект создается как и IE
Set oIE = CreateObject("InternetExplorer.Appl ication")
Анализ,обработка данных Недорого
doober вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Прокрутка к элементу при загрузке страницы Viconte JavaScript, Ajax 3 26.07.2014 06:01
Функция при загрузке страницы ВалекFCRK JavaScript, Ajax 4 15.04.2014 11:17
Окно, появляющиеся при загрузке веб страницы Lawilet JavaScript, Ajax 4 12.10.2011 12:57
скрипт при загрузке страницы xap4o JavaScript, Ajax 2 16.02.2010 23:33
Выезжающее меню при загрузке страницы beginner JavaScript, Ajax 12 03.07.2008 16:45