Ошибка сценария VBA в интрасети

В настоящее время я использую Office 2010, Visual Basic для приложений 7 и Internet Explorer 9.

Текущая проблема, с которой я столкнулся, заключается в том, что использование объекта IE, похоже, не работает в нашей интрасети, и мне было интересно, есть ли для этого исправление.

Функциональный код:

Dim IE As Object Set IE = CreateObject("InternetExplorer.Application") IE.Navigate "http://www.google.com" WaitUntilReady IE 'Application.Wait (Now + TimeValue("00:00:10")) 'IE.Visible = True MsgBox (IE.Document.body.innerHTML) 

Сломанный код:

 Dim IE As Object Set IE = CreateObject("InternetExplorer.Application") IE.Navigate "http://intranet/" WaitUntilReady IE 'Application.Wait (Now + TimeValue("00:00:10")) 'IE.Visible = True MsgBox (IE.Document.body.innerHTML) 

Функциональный код делает именно то, что он должен. Делает объект IE, который явно не отображается на экране, и возвращает окно с содержимым HTML-кода google.com

Сломанный код загружает нашу домашнюю страницу интрасети в окне VISIBLE IE и возвращает эту ошибку:

 Run-time error '-2147417848 (80010108)' Automation error The object invoked has disconnected from its clients 

Я прочитал через локальную интрасеть Excel VBA Controlling IE, которая предложила использовать IP-адрес вместо интрасети / который не работает, потому что IP направляет на другой заставку.

Я также попытался использовать

 Set IE = New InternetExplorerMedium 

Но этот A, похоже, тоже не работает, и B- означало бы, что все мои коллеги-сотрудники включили эту ссылку.

Кроме того, я сначала попытался загрузить google.com, а затем перешел к интрасети /, что также не помогло.

У кого-нибудь есть предложения? Насколько я понимаю, загрузка интрасети / приводит к тому, что IE каким-то образом отключается от Excel?

    ТАК! После нескольких дней исследований и полной потери для того, что происходило, я наткнулся на кого-то, говорящего о режиме совместимости интрасети в другой статье.

    Принудительный режим браузера Internet Explorer 8 в интрасети

    Что-то случилось, когда я читал это, понимая, что если IE загружается в совместимость, это объясняет, почему макрос Excel VBA потерял контроль над IE, поскольку режим совместимости может быть загружен как отдельный экземпляр IE.

    Настройки> Свойства обозревателя> Безопасность> Локальная интрасеть> Сайты>

    Отключите «Автоматическое обнаружение интрасети» и включите «Включить все сетевые пути (UNC)». Исправлена ​​ошибка, с которой я столкнулся.

     'simply replace -seem to work ' Set ie = CreateObject("InternetExplorer.Application") Set ie = New InternetExplorerMedium 

    другое решение

     Set IE = CreateObject("InternetExplorer.Application") IE.Navigate ("http://URLOnMyIntranet/site.html") IE.Visible = True Set IE = nothing Set objShellApp = CreateObject("Shell.Application") For Each objWindow In objShellApp.Windows Debug.Print objWindow.LocationName If LCase(objWindow.LocationName) = LCase("Your windows name, use debug to find out") Then Set IE = objWindow End If Next`enter code here` 

    также см. этот пост

    Interesting Posts

    заполнение данных из флажков пользовательской формы и дополнительных кнопок

    Количество строк в цикле для суммы столбца

    Установите «Переместить и размер с ячейками» для флажка, созданного в VBA

    Отображение значения одной ячейки или нескольких ячеек на основе значений в других ячейках

    Функция VBA не выделяет столбцы при использовании в ячейке excel

    Инструмент lyAutomation с использованием vba excel и с помощью инструмента вы можете назначить тест любому количеству студентов одним щелчком мыши

    Включить условное форматирование Excel на основе соседей

    Excel: найдите адрес ячейки, затем используйте этот адрес в функции

    .xls файл, сгенерированный с PHP, сохранит, но не откроется из IE

    Макрос VBA для Excel больше не работает правильно под Windows 10

    Предыдущие покупатели

    Изменение данных в ячейке после заполненной ячейки списка

    что делает выбор @ @ identity?

    AutoSum и Sum возвращают '0' при попытке добавить числа, импортированные SQL

    OpenXML (метод SAX) – добавление строки в существующую вкладку

    Давайте будем гением компьютера.