Excel VBA Web Browser Ошибка времени выполнения '424' требуется объект - PullRequest
0 голосов
/ 09 января 2019

Я работаю с книгой Excel, которая включает в себя Google Maps. Пока что все работало правильно, но внезапно начало выдаваться ошибка во время выполнения.

Карта - это просто веб-браузер Microsoft ActiveX, который активируется кнопкой и считывает часть URL-адреса карты из ячейки, указанной в ячейке рядом с кнопкой.

Private Sub CommandButton1_Click()
  Dim rowNum As Long
  rowNum = Sheets("Map").Range("B2")
  rowNum = rowNum - 43396
  MapViewer1.Navigate ("https://www.google.com/maps/d/u/0/embed?mid=" + 
Sheets("Map").Range("D" & rowNum).Value)

End Sub

Итак, как я уже сказал, этот код работал долгое время, но он остановился и теперь выдает ошибку в строке «MapViewer1.Navigate ...». Никто другой не изменил VBA книги. Что может быть причиной этого?

Ответы [ 2 ]

0 голосов
/ 10 января 2019

Я выяснил, что не так для меня.

Оказалось, что на самом деле с книгой все в порядке.
На компьютере, с которым я работал, возникла проблема с WebBrowser, для ключа реестра было установлено значение, отключающее некоторые элементы управления ActiveX.


Решение для тех, у кого такая же проблема с ActiveX, можно найти здесь: LINK .
0 голосов
/ 09 января 2019

Не ответ, просто где-то, чтобы показать код.

Я попробовал следующее, что позволяет мне отлаживать каждую из «оболочек» вокруг веб-браузера, при этом конечный объект w является браузером. Взгляните также на Navigate2. Проверьте этот код, убедитесь, что s и o и w заполнены.

Sub t()

Dim s As Shape
Dim o As OLEObject
Dim w As WebBrowser

Set s = ActiveSheet.Shapes("mapviewer")
Set o = s.OLEFormat.Object
Set w = o.Object

w.Navigate "www.google.co.uk"
w.Navigate2 ""  '   <-- try this also

End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...