Реализовать привязку события onclick, используя объект документа HTML из Excel VBA - PullRequest
1 голос
/ 21 июля 2010

Я пытаюсь реализовать событие onclick для тега привязки на веб-сайте из Excel VBA.Следующий код дает мне сообщение об ошибке.

Set iePage = ieApp.document
Set ieAnchor = iePage.getElementsByTagName("A").Item(5)
ieAnchor.onclick = true

Сообщение об ошибке является ошибкой во время выполнения, которая говорит Not Implemented

Может кто-нибудь, пожалуйста, посоветовать, как запустить это событие?

Кстати, я использовал базовое событие iePage.Links(1).click без проблем ... но мне нужно выполнить функцию javascript, вызываемую из события onclick привязки.

1 Ответ

0 голосов
/ 22 июля 2010

Если я правильно понимаю ваш вопрос, вы пытаетесь ответить в VBA на пользователя, нажимающего на якорь? Если это так, вам нужно создать EventHandler для события OnClick. Для этого вы должны реструктурировать свой код в соответствии со следующими критериями:

  1. Вы должны объявить указанную переменную Anchor, используя ключевое слово «WithEvents», чтобы отвечать на события.
  2. Чтобы использовать ключевое слово «WithEvents», вы должны объявить переменную Anchor на уровне модуля.
  3. Вы также должны быть внутри модуля Class , чтобы использовать ключевое слово WithEvents.
  4. Наконец, вам нужно создать сам обработчик событий с помощью выпадающего меню в верхней части VBE или просто вставить код ниже.

    Как использовать код: Создайте модуль класса с именем «MyClass» и вставьте следующее:
Option Explicit

Private WithEvents ieAnchor As MSHTML.HTMLAnchorElement

Public Sub Main()
    Dim iePage As MSHTML.HTMLDocument
    Set iePage = ieApp.document
    Set ieAnchor = iePage.getElementsByTagName("A").Item(5)
End Sub

Private Function mobjMyAnchor_onclick() As Boolean
    ''//Your Code Here
End Function

Чтобы использовать код в классе, вы можете добавить стандартный модуль и вызвать код следующим образом:

Public Sub Example()
    Dim objMyClassVariable As MyClass
    Set objMyClassVariable = New MyClass
    objMyClassVariable.Main
End Sub

Edit: Для вызова функции JavaScript вы можете просто использовать схему URL-адреса JavaScript с методом InternetExplorer.Navigate. Пример: ie.Navigate "JavaScript:SomeFunc()". Или вы можете просто вызвать щелчок, используя метод HTMLAnchorElement.Click: ieAnchor.Click.

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