VBA - IsObject (myobject) возвращает значение True, однако ошибка «объект требуется» - PullRequest
0 голосов
/ 06 января 2019

Я пытаюсь создать мост между VBA UserForm и веб-браузером в форме. Мне не нравятся ограничения VBA для запроса документа HTML или внесения изменений на лету, и я хотел бы вместо этого использовать Javascript.

Пока я пробовал:

Private Sub CommandButton2_Click()

Dim head As HTMLGenericElement
Dim scriptEl As HTMLGenericElement
Dim element As IHTMLScriptElement

Set head = WebBrowser1.Document.GetElementsByTagName("head")(0)
Set scriptEl = WebBrowser1.Document.createElement("script")

        scriptEl.Text = "function sayHello() { alert('hello') }"

        head.appendChild (scriptEl)
        WebBrowser1.Document.InvokeScript ("sayHello")
End Sub

Я получаю ошибку 424 - требуется объект в строке "head.appendChild".

Я использовал IsObject () как для head, так и для scriptEl, оба возвращают true. Так что я совсем запутался!

Если бы кто-нибудь мог дать какое-то руководство о том, что происходит, это было бы фантастически, или как адаптировать то, что у меня есть, для переноса сценариев через мост, например:

 WebBrowser1.Document.InvokeScript ("my javascript code that I wish to run here")

1 Ответ

0 голосов
/ 08 января 2019
head.appendChild (scriptEl)

Здесь круглые скобки вокруг scriptEl вызывают его оценку как выражение (и результатом этой оценки, вероятно, является необъектный тип.

head.appendChild scriptEl

Должно работать нормально.

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